Author: Maciej Fijalkowski <fij...@gmail.com> Branch: Changeset: r67417:bc13dac86489 Date: 2013-10-16 14:08 +0200 http://bitbucket.org/pypy/pypy/changeset/bc13dac86489/
Log: fix 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 @@ -1597,6 +1597,9 @@ if (bool(self.young_rawmalloced_objects) and self.young_rawmalloced_objects.contains(obj)): self._visit_young_rawmalloced_object(obj) + if self.gc_state == STATE_MARKING: + if not self.header(obj).tid & GCFLAG_VISITED: + self.objects_to_trace.append(obj) return # size_gc_header = self.gcheaderbuilder.size_gc_header diff --git a/rpython/memory/gc/test/test_direct.py b/rpython/memory/gc/test/test_direct.py --- a/rpython/memory/gc/test/test_direct.py +++ b/rpython/memory/gc/test/test_direct.py @@ -652,12 +652,13 @@ self.stackroots.append(obj0) obj0.next = self.malloc(S) self.gc.debug_gc_step_until(incminimark.STATE_MARKING) + obj0 = self.stackroots[-1] obj1 = obj0.next obj1.x = 13 obj0.next = lltype.nullptr(S) self.stackroots.append(obj1) self.gc.debug_gc_step_until(incminimark.STATE_SCANNING) - assert self.stackroots[0].x == 13 + assert self.stackroots[1].x == 13 class TestIncrementalMiniMarkGCFull(DirectGCTest): from rpython.memory.gc.incminimark import IncrementalMiniMarkGC as GCClass _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit