repair object counting
The leak repair wasn't quite right, and it broke `object-counts`. original commit: 4f3ea0d8d093908e35067a02e1f78e033a5bb655
This commit is contained in:
parent
c4ffe39efb
commit
02fca53fba
|
@ -766,8 +766,13 @@
|
||||||
(set! g += 1)))
|
(set! g += 1)))
|
||||||
(set! (record-type-counts c_rtd) counts)
|
(set! (record-type-counts c_rtd) counts)
|
||||||
(set! (array-ref S_G.rtds_with_counts grtd)
|
(set! (array-ref S_G.rtds_with_counts grtd)
|
||||||
;; this list will get copied again in `rtds_with_counts` fixup
|
;; For max_copied_generation, the list will get copied again in `rtds_with_counts` fixup;
|
||||||
(S_cons_in space_new 0 c_rtd (array-ref S_G.rtds_with_counts grtd)))
|
;; meanwhile, allocating in `space_impure` would copy and sweep old list entries causing
|
||||||
|
;; otherwise inaccessible rtds to be retained
|
||||||
|
(S_cons_in (cond [(<= grtd max_copied_generation) space_new] [else space_impure])
|
||||||
|
(cond [(<= grtd max_copied_generation) 0] [else grtd])
|
||||||
|
c_rtd
|
||||||
|
(array-ref S_G.rtds_with_counts grtd)))
|
||||||
(set! (array-ref (array-ref S_G.countof grtd) countof_pair) += 1))]
|
(set! (array-ref (array-ref S_G.countof grtd) countof_pair) += 1))]
|
||||||
[else
|
[else
|
||||||
(trace-early (just counts))
|
(trace-early (just counts))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user