Author: Gregor Wegberg <[email protected]>
Branch: gc-incminimark-pinning
Changeset: r72159:056197b70af4
Date: 2014-06-23 13:14 +0200
http://bitbucket.org/pypy/pypy/changeset/056197b70af4/
Log: keep 'prev_result' up-to-date in 'collect_and_reserve'.
fixes failing test 'test_collect_during_collect'
diff --git a/rpython/memory/gc/incminimark.py b/rpython/memory/gc/incminimark.py
--- a/rpython/memory/gc/incminimark.py
+++ b/rpython/memory/gc/incminimark.py
@@ -733,6 +733,12 @@
# nursery.
self.nursery_free = self.nursery_top + pinned_obj_size
self.nursery_top = self.nursery_barriers.popleft()
+ #
+ # because we encountered a barrier, we also have to fix
+ # 'prev_result' as the one provided as a method parameter
+ # can't be used as there is no space between 'prev_result'
+ # and the barrier for 'totalsize'.
+ prev_result = self.nursery_free
else:
#
# no barriers (i.e. pinned objects) after 'nursery_free'.
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit