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