[pypy-commit] pypy reverse-debugger: hg merge boehm-rawrefcount

arigo pypy.commits at gmail.com
Wed Sep 7 09:00:06 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: reverse-debugger
Changeset: r86930:22608a742f02
Date: 2016-09-07 14:59 +0200
http://bitbucket.org/pypy/pypy/changeset/22608a742f02/

Log:	hg merge boehm-rawrefcount

diff --git a/rpython/rlib/src/boehm-rawrefcount.c b/rpython/rlib/src/boehm-rawrefcount.c
--- a/rpython/rlib/src/boehm-rawrefcount.c
+++ b/rpython/rlib/src/boehm-rawrefcount.c
@@ -190,6 +190,7 @@
                 printf("next_dead: %p\n", result);
 #endif
                 assert(result->ob_refcnt == REFCNT_FROM_PYPY);
+                result->ob_refcnt = 1;
                 p->pyobj = NULL;
                 *pp = p->next_in_bucket;
                 p->next_in_bucket = hash_free_list;
diff --git a/rpython/rlib/test/test_rawrefcount.py b/rpython/rlib/test/test_rawrefcount.py
--- a/rpython/rlib/test/test_rawrefcount.py
+++ b/rpython/rlib/test/test_rawrefcount.py
@@ -254,6 +254,9 @@
             if rawrefcount.next_dead(PyObject) != ob:
                 print "NEXT_DEAD != OB"
                 return 1
+            if ob.c_ob_refcnt != 1:
+                print "next_dead().ob_refcnt != 1"
+                return 1
             if rawrefcount.next_dead(PyObject) != lltype.nullptr(PyObjectS):
                 print "NEXT_DEAD second time != NULL"
                 return 1
@@ -294,6 +297,9 @@
             while True:
                 ob = rawrefcount.next_dead(PyObject)
                 if not ob: break
+                if ob.c_ob_refcnt != 1:
+                    print "next_dead().ob_refcnt != 1"
+                    return 1
                 deadlist.append(ob)
             if len(deadlist) == 0:
                 print "no dead object"


More information about the pypy-commit mailing list