Author: Armin Rigo <[email protected]>
Branch: reverse-debugger
Changeset: r86945:5d46dd70887c
Date: 2016-09-07 19:09 +0200
http://bitbucket.org/pypy/pypy/changeset/5d46dd70887c/
Log: Comments. Disable a code path that (by mistake) casts between a GC
pointer and a char-sized integer.
diff --git a/pypy/module/cpyext/memoryobject.py
b/pypy/module/cpyext/memoryobject.py
--- a/pypy/module/cpyext/memoryobject.py
+++ b/pypy/module/cpyext/memoryobject.py
@@ -41,6 +41,7 @@
view.c_len = w_obj.getlength()
view.c_itemsize = w_obj.buf.getitemsize()
rffi.setintfield(view, 'c_ndim', ndim)
+ raise NotImplementedError # bogus lines follow, remove this when fixed
view.c__format = rffi.cast(rffi.UCHAR, w_obj.buf.getformat())
view.c_format = rffi.cast(rffi.CCHARP, view.c__format)
view.c_shape = rffi.cast(Py_ssize_tP, view.c__shape)
diff --git a/rpython/translator/revdb/src-revdb/revdb.c
b/rpython/translator/revdb/src-revdb/revdb.c
--- a/rpython/translator/revdb/src-revdb/revdb.c
+++ b/rpython/translator/revdb/src-revdb/revdb.c
@@ -1895,6 +1895,17 @@
return r;
}
else {
+ /* Note: when replaying, the lifetime of the gcobj is a bit
+ extended when compared with recording. That shouldn't have
+ a visible effect. More precisely, when replaying,
+ create_link_pypy() calls _rrtree_add(), which makes a
+ struct rawrefcount_link2_s, which keeps gcobj alive; and
+ that structure is only freed here, when we call next_dead()
+ and return the corresponding pyobj. When recording, the
+ cause-and-effect relationship is in the opposite direction:
+ when Boehm frees the gcobj, it causes the pyobj to show up
+ (sometimes later) in a next_dead() call.
+ */
RPY_REVDB_EMIT(abort();, unsigned char _e, flag);
switch (flag) {
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit