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

Reply via email to