Author: Remi Meier <[email protected]>
Branch: 
Changeset: r373:470bcb38a12e
Date: 2013-07-08 13:26 +0200
http://bitbucket.org/pypy/stmgc/changeset/470bcb38a12e/

Log:    repeat/do write barrier after minor_collection. I think the problem
        was that minor_collect clears old_objects_to_trace and the object
        needs to be reregistered there if it is modified again.

diff --git a/duhton/listobject.c b/duhton/listobject.c
--- a/duhton/listobject.c
+++ b/duhton/listobject.c
@@ -75,7 +75,7 @@
 
 void _list_append(DuListObject *ob, DuObject *x)
 {
-    _du_write1(ob);
+    _du_read1(ob);
     DuTupleObject *olditems = ob->ob_tuple;
 
     _du_read1(olditems);
@@ -85,6 +85,8 @@
     DuTupleObject *newitems = DuTuple_New(newcount);
     _du_restore3(ob, x, olditems);
 
+    _du_write1(ob);
+
     for (i=0; i<newcount-1; i++)
         newitems->ob_items[i] = olditems->ob_items[i];
     newitems->ob_items[newcount-1] = x;
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to