Author: Remi Meier <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit