Author: Remi Meier <remi.me...@inf.ethz.ch>
Branch: c8-private-pages
Changeset: r1536:90490c3e14aa
Date: 2015-01-16 14:06 +0100
http://bitbucket.org/pypy/stmgc/changeset/90490c3e14aa/

Log:    (try to) not trace objs in segments they are not accessible in

diff --git a/c8/stm/gcpage.c b/c8/stm/gcpage.c
--- a/c8/stm/gcpage.c
+++ b/c8/stm/gcpage.c
@@ -220,10 +220,15 @@
 
     assert(list_is_empty(marked_objects_to_trace));
 
+    /* trace into the object (the version from 'segment_base') */
+    struct object_s *realobj =
+        (struct object_s *)REAL_ADDRESS(segment_base, obj);
+    stmcb_trace(realobj, &mark_record_trace);
+
+    /* trace all references found in sharing seg0 (should always be
+       up-to-date and not cause segfaults) */
     while (1) {
-        /* trace into the object (the version from 'segment_base') */
-        struct object_s *realobj =
-            (struct object_s *)REAL_ADDRESS(segment_base, obj);
+        realobj = (struct object_s *)REAL_ADDRESS(stm_object_pages, obj);
         stmcb_trace(realobj, &mark_record_trace);
 
         if (list_is_empty(marked_objects_to_trace))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to