Author: Remi Meier <[email protected]>
Branch: card-marking
Changeset: r1224:f88edde120b2
Date: 2014-05-20 18:39 +0200
http://bitbucket.org/pypy/stmgc/changeset/f88edde120b2/

Log:    remove invalid assert and fix wrong use of segment-local reference

diff --git a/c7/stm/core.c b/c7/stm/core.c
--- a/c7/stm/core.c
+++ b/c7/stm/core.c
@@ -181,8 +181,6 @@
         }
     }
     else if (write_locks[base_lock_idx] == lock_num) {
-        assert(IMPLY(!(obj->stm_flags & GCFLAG_CARDS_SET),
-                     STM_PSEGMENT->objects_pointing_to_nursery != NULL));
 #ifdef STM_TESTS
         bool found = false;
         LIST_FOREACH_R(STM_PSEGMENT->modified_old_objects, object_t *,
diff --git a/c7/stm/nursery.c b/c7/stm/nursery.c
--- a/c7/stm/nursery.c
+++ b/c7/stm/nursery.c
@@ -383,7 +383,10 @@
     } else {
         LIST_FOREACH_R(pseg->modified_old_objects, object_t * /*item*/,
            {
-               if (item->stm_flags & GCFLAG_CARDS_SET) {
+               struct object_s *realobj = (struct object_s *)
+                   REAL_ADDRESS(pseg->pub.segment_base, item);
+
+               if (realobj->stm_flags & GCFLAG_CARDS_SET) {
                    _reset_object_cards(&pseg->pub, item);
                }
            });
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to