[pypy-commit] stmgc default: 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.
Raemi
noreply at buildbot.pypy.org
Mon Jul 8 13:27:16 CEST 2013
Author: Remi Meier <meierrem at student.ethz.ch>
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;
More information about the pypy-commit
mailing list