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