[pypy-svn] r49714 - pypy/branch/pypy-gc-traceopt/rpython/memory/gc

arigo at codespeak.net arigo at codespeak.net
Thu Dec 13 14:12:47 CET 2007


Author: arigo
Date: Thu Dec 13 14:12:47 2007
New Revision: 49714

Modified:
   pypy/branch/pypy-gc-traceopt/rpython/memory/gc/base.py
Log:
Merge of r49713 from the trunk.


Modified: pypy/branch/pypy-gc-traceopt/rpython/memory/gc/base.py
==============================================================================
--- pypy/branch/pypy-gc-traceopt/rpython/memory/gc/base.py	(original)
+++ pypy/branch/pypy-gc-traceopt/rpython/memory/gc/base.py	Thu Dec 13 14:12:47 2007
@@ -116,19 +116,18 @@
             callback(obj + offsets[i], arg)
             i += 1
         if self.has_gcptr_in_varsize(typeid):
-            offset = self.varsize_offset_to_variable_part(
-                typeid)
+            item = obj + self.varsize_offset_to_variable_part(typeid)
             length = (obj + self.varsize_offset_to_length(typeid)).signed[0]
             offsets = self.varsize_offsets_to_gcpointers_in_var_part(typeid)
             itemlength = self.varsize_item_sizes(typeid)
             i = 0
             while i < length:
-                item = obj + offset + itemlength * i
                 j = 0
                 while j < len(offsets):
                     callback(item + offsets[j], arg)
                     j += 1
                 i += 1
+                item += itemlength
     _slow_trace._annspecialcase_ = 'specialize:arg(3)'
 
 



More information about the Pypy-commit mailing list