Author: Gregor Wegberg <c...@gregorwegberg.com> Branch: gc-incminimark-pinning Changeset: r72866:e9322b528a2c Date: 2014-08-18 09:54 +0200 http://bitbucket.org/pypy/pypy/changeset/e9322b528a2c/
Log: create a new AddressStack only if needed 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 @@ -2124,12 +2124,13 @@ # # get rid of objects pointing to pinned objects that were not # visited - new_old_objects_pointing_to_pinned = self.AddressStack() - self.old_objects_pointing_to_pinned.foreach( - self._sweep_old_objects_pointing_to_pinned, - new_old_objects_pointing_to_pinned) - self.old_objects_pointing_to_pinned.delete() - self.old_objects_pointing_to_pinned = new_old_objects_pointing_to_pinned + if self.old_objects_pointing_to_pinned.non_empty(): + new_old_objects_pointing_to_pinned = self.AddressStack() + self.old_objects_pointing_to_pinned.foreach( + self._sweep_old_objects_pointing_to_pinned, + new_old_objects_pointing_to_pinned) + self.old_objects_pointing_to_pinned.delete() + self.old_objects_pointing_to_pinned = new_old_objects_pointing_to_pinned self.gc_state = STATE_SWEEPING #END MARKING elif self.gc_state == STATE_SWEEPING: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit