[pypy-commit] pypy gc-minimark-pinning: Don't decrement 'pinned_objects_in_nursery' if the object is not pinned
arigo
noreply at buildbot.pypy.org
Fri Apr 20 19:33:58 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch: gc-minimark-pinning
Changeset: r54593:50b176a35634
Date: 2012-04-20 19:33 +0200
http://bitbucket.org/pypy/pypy/changeset/50b176a35634/
Log: Don't decrement 'pinned_objects_in_nursery' if the object is not
pinned (e.g. if a previous pin() failed).
diff --git a/pypy/rpython/memory/gc/minimark.py b/pypy/rpython/memory/gc/minimark.py
--- a/pypy/rpython/memory/gc/minimark.py
+++ b/pypy/rpython/memory/gc/minimark.py
@@ -810,8 +810,9 @@
self.header(obj).tid |= GCFLAG_PINNED
def unpin(self, obj):
- self.pinned_objects_in_nursery -= 1
- self.header(obj).tid &= ~GCFLAG_PINNED
+ if self.header(obj).tid & GCFLAG_PINNED:
+ self.pinned_objects_in_nursery -= 1
+ self.header(obj).tid &= ~GCFLAG_PINNED
def shrink_array(self, obj, smallerlength):
#
More information about the pypy-commit
mailing list