Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r69853:a7fa5589af70
Date: 2014-03-11 10:15 +0100
http://bitbucket.org/pypy/pypy/changeset/a7fa5589af70/

Log:    tweak tweak

diff --git a/rpython/memory/gctransform/stmframework.py 
b/rpython/memory/gctransform/stmframework.py
--- a/rpython/memory/gctransform/stmframework.py
+++ b/rpython/memory/gctransform/stmframework.py
@@ -21,11 +21,11 @@
             [s_gc, s_typeid16, annmodel.SomeInteger(nonneg=True),
              s_gcref], s_gcref)
         #
-        def pypy_stmcb_size(obj):
+        def pypy_stmcb_size_rounded_up(obj):
             return gc.get_size(obj)
-        pypy_stmcb_size.c_name = "pypy_stmcb_size"
+        pypy_stmcb_size_rounded_up.c_name = "pypy_stmcb_size_rounded_up"
         self.autoregister_ptrs.append(
-            getfn(pypy_stmcb_size, [llannotation.SomeAddress()],
+            getfn(pypy_stmcb_size_rounded_up, [llannotation.SomeAddress()],
                   annmodel.SomeInteger()))
         #
         def invokecallback(root, visit_fn):
diff --git a/rpython/translator/stm/funcgen.py 
b/rpython/translator/stm/funcgen.py
--- a/rpython/translator/stm/funcgen.py
+++ b/rpython/translator/stm/funcgen.py
@@ -44,7 +44,10 @@
 
 
 def stm_register_thread_local(funcgen, op):
-    return 'stm_register_thread_local(&stm_thread_local);'
+    return (
+      'stm_register_thread_local(&stm_thread_local);\n\t'
+      'stm_thread_local.mem_clear_on_abort = &pypy_g_ExcData;\n\t'
+      'stm_thread_local.mem_bytes_to_clear_on_abort = sizeof(pypy_g_ExcData);')
 
 def stm_unregister_thread_local(funcgen, op):
     return 'stm_unregister_thread_local(&stm_thread_local);'
diff --git a/rpython/translator/stm/src_stm/stmgcintf.c 
b/rpython/translator/stm/src_stm/stmgcintf.c
--- a/rpython/translator/stm/src_stm/stmgcintf.c
+++ b/rpython/translator/stm/src_stm/stmgcintf.c
@@ -4,11 +4,11 @@
 
 __thread struct stm_thread_local_s stm_thread_local;
 
-extern Signed pypy_stmcb_size(void*);
+extern Signed pypy_stmcb_size_rounded_up(void*);
 extern void pypy_stmcb_trace(void*, void(*)(void*));
 
-inline size_t stmcb_size(struct object_s *obj) {
-    return pypy_stmcb_size(obj);
+inline ssize_t stmcb_size_rounded_up(struct object_s *obj) {
+    return pypy_stmcb_size_rounded_up(obj);
 }
 
 inline void stmcb_trace(struct object_s *obj, void visit(object_t **)) {
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to