Author: Armin Rigo <[email protected]>
Branch: stmgc-c4
Changeset: r65106:22d6efdb107a
Date: 2013-06-29 22:06 +0200
http://bitbucket.org/pypy/pypy/changeset/22d6efdb107a/

Log:    in-progress

diff --git a/rpython/memory/gc/stmgc.py b/rpython/memory/gc/stmgc.py
--- a/rpython/memory/gc/stmgc.py
+++ b/rpython/memory/gc/stmgc.py
@@ -23,6 +23,20 @@
 
     TRANSLATION_PARAMS = {}
 
+    def __init__(self, config, **kwds):
+        MovingGCBase.__init__(self, config, **kwds)
+
+        def stmcb_size(obj):
+            typeid = self.get_type_id(obj)
+            size = self.fixed_size(typeid)
+            if self.is_varsize(typeid):
+                lenofs = self.varsize_offset_to_length(typeid)
+                length = (obj + lenofs).signed[0]
+                size += self.varsize_item_sizes(typeid) * length
+            return size
+
+        
+
     def get_type_id(self, obj):
         return llop.stm_get_tid(llgroup.HALFWORD, obj)
 
diff --git a/rpython/translator/stm/stmgcintf.py 
b/rpython/translator/stm/stmgcintf.py
--- a/rpython/translator/stm/stmgcintf.py
+++ b/rpython/translator/stm/stmgcintf.py
@@ -5,9 +5,13 @@
 
 cdir = os.path.abspath(os.path.join(cdir2, '..', 'stm'))
 
+separate_source = '''
+#include "src_stm/stmgc.c"
+'''
+
 eci = ExternalCompilationInfo(
     include_dirs = [cdir, cdir2],
     includes = ['src_stm/stmgc.h'],
     pre_include_bits = ['#define RPY_STM 1'],
-    separate_module_sources = ['\n#include "src_stm/stmgc.c"\n'],
+    separate_module_sources = [separate_source],
 )
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to