Author: Matti Picus <[email protected]>
Branch: jit-hooks-can-be-disabled
Changeset: r94206:bc36eabcc716
Date: 2018-04-01 08:43 +0300
http://bitbucket.org/pypy/pypy/changeset/bc36eabcc716/
Log: close merged branch
diff --git a/pypy/module/cpyext/pyobject.py b/pypy/module/cpyext/pyobject.py
--- a/pypy/module/cpyext/pyobject.py
+++ b/pypy/module/cpyext/pyobject.py
@@ -60,7 +60,12 @@
def _cpyext_attach_pyobj(self, space, py_obj):
self._cpy_ref = py_obj
- rawrefcount.create_link_pyobj(self, py_obj)
+ if type(self) is cls:
+ rawrefcount.create_link_pyobj(self, py_obj)
+ else:
+ # optimization of create_link_pyobj() doesn't work for
+ # interp-level subclasses!
+ rawrefcount.create_link_pypy(self, py_obj)
cls._cpyext_attach_pyobj = _cpyext_attach_pyobj
add_direct_pyobj_storage(W_BaseCPyObject)
@@ -128,9 +133,6 @@
w_type)
raise
track_reference(space, obj, w_obj)
- if w_type.flag_cpytype:
- assert isinstance(w_obj, W_BaseCPyObject)
- w_obj._cpy_ref = obj
return w_obj
typedescr_cache = {}
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit