[pypy-commit] pypy gc-minimark-pinning: surprisingly enough make the test pass
fijal
noreply at buildbot.pypy.org
Thu Apr 12 23:37:29 CEST 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: gc-minimark-pinning
Changeset: r54318:825c0462f962
Date: 2012-04-12 23:37 +0200
http://bitbucket.org/pypy/pypy/changeset/825c0462f962/
Log: surprisingly enough make the test pass
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
@@ -589,7 +589,17 @@
now-empty nursery.
"""
if not self.nursery_top == self.nursery + self.nursery_size:
- xxx
+ self.nursery_top = self.nursery_barriers.popleft()
+ size_gc_header = self.gcheaderbuilder.size_gc_header
+ while self.nursery_barriers.non_empty() and self.nursery_free + totalsize > self.nursery_top:
+ cur_obj_size = size_gc_header + self.get_size(
+ self.nursery_free + size_gc_header)
+ self.nursery_free = self.nursery_free + cur_obj_size
+ self.nursery_top = self.nursery_barriers.popleft()
+ if self.nursery_free + totalsize <= self.nursery_top:
+ llarena.arena_reserve(self.nursery_free, totalsize)
+ res = self.nursery_free
+ self.nursery_free = res + totalsize
self.minor_collection(totalsize)
# try allocating now, otherwise we do a major collect
do_major_collect = False
More information about the pypy-commit
mailing list