[pypy-commit] stmgc default: Fix.

arigo noreply at buildbot.pypy.org
Thu Aug 14 13:02:16 CEST 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r1312:43bf7ea2e593
Date: 2014-08-14 13:02 +0200
http://bitbucket.org/pypy/stmgc/changeset/43bf7ea2e593/

Log:	Fix.

diff --git a/c7/stm/gcpage.c b/c7/stm/gcpage.c
--- a/c7/stm/gcpage.c
+++ b/c7/stm/gcpage.c
@@ -397,17 +397,20 @@
                 mark_visit_object(current->ss, segment_base);
         }
         mark_visit_object(tl->thread_local_obj, segment_base);
-        stm_rewind_jmp_enum_shadowstack(tl, mark_visit_objects_from_ss);
 
         tl = tl->next;
     } while (tl != stm_all_thread_locals);
 
     long i;
     for (i = 1; i <= NB_SEGMENTS; i++) {
-        if (get_priv_segment(i)->transaction_state != TS_NONE)
+        if (get_priv_segment(i)->transaction_state != TS_NONE) {
             mark_visit_object(
                 get_priv_segment(i)->threadlocal_at_start_of_transaction,
                 get_segment_base(i));
+            stm_rewind_jmp_enum_shadowstack(
+                get_segment(i)->running_thread,
+                mark_visit_objects_from_ss);
+        }
     }
 }
 
diff --git a/c7/stm/rewind_setjmp.c b/c7/stm/rewind_setjmp.c
--- a/c7/stm/rewind_setjmp.c
+++ b/c7/stm/rewind_setjmp.c
@@ -194,12 +194,12 @@
     /* frees all saved stack copies */
     assert(_has_mutex());
     struct _rewind_jmp_moved_s *p = rjthread->moved_off;
-    struct _rewind_jmp_moved_s *pnext;
     while (p) {
-        pnext = p->next;
+        struct _rewind_jmp_moved_s *pnext = p->next;
         rj_free(p);
         p = pnext;
     }
     rjthread->moved_off = NULL;
     rjthread->moved_off_base = NULL;
+    rjthread->moved_off_ssbase = NULL;
 }


More information about the pypy-commit mailing list