[pypy-commit] stmgc c7-refactor: Tweak

arigo noreply at buildbot.pypy.org
Sun Feb 16 15:30:14 CET 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: c7-refactor
Changeset: r752:616a24c4ab3c
Date: 2014-02-16 10:35 +0100
http://bitbucket.org/pypy/stmgc/changeset/616a24c4ab3c/

Log:	Tweak

diff --git a/c7/stm/pages.c b/c7/stm/pages.c
--- a/c7/stm/pages.c
+++ b/c7/stm/pages.c
@@ -87,20 +87,21 @@
     assert((size & 255) == 0);
     assert(size > 0);
 
-    char *addr = REAL_ADDRESS(STM_SEGMENT->segment_base, ((uintptr_t)p) >> 8);
+    uintptr_t cmaddr = ((uintptr_t)p) >> 8;
+    LIST_APPEND(STM_PSEGMENT->creation_markers, cmaddr);
+
+    char *addr = REAL_ADDRESS(STM_SEGMENT->segment_base, cmaddr);
     memset(addr, newvalue, size >> 8);
-
-    LIST_APPEND(STM_PSEGMENT->creation_markers, addr);
 }
 
 static void set_single_creation_marker(stm_char *p, int newvalue)
 {
     assert((((uintptr_t)p) & 255) == 0);
 
-    char *addr = REAL_ADDRESS(STM_SEGMENT->segment_base, ((uintptr_t)p) >> 8);
-    addr[0] = newvalue;
+    uintptr_t cmaddr = ((uintptr_t)p) >> 8;
 
-    LIST_APPEND(STM_PSEGMENT->creation_markers, addr);
+    ((stm_creation_marker_t *)cmaddr)->cm = newvalue;
+    LIST_APPEND(STM_PSEGMENT->creation_markers, cmaddr);
 }
 
 static void reset_all_creation_markers(void)
@@ -114,7 +115,7 @@
         STM_PSEGMENT->creation_markers,
         uintptr_t /*item*/,
         ({
-            uint64_t *p = (uint64_t *)(item & ~7);
+            TLPREFIX uint64_t *p = (TLPREFIX uint64_t *)(item & ~7);
             while (*p != 0)
                 *p++ = 0;
         }));


More information about the pypy-commit mailing list