Author: Matti Picus <matti.pi...@gmail.com> Branch: missing-tp_new Changeset: r89566:a7f5d5cc77ae Date: 2017-01-14 20:51 +0200 http://bitbucket.org/pypy/pypy/changeset/a7f5d5cc77ae/
Log: reduce diff in merge, document branch diff --git a/pypy/doc/whatsnew-head.rst b/pypy/doc/whatsnew-head.rst --- a/pypy/doc/whatsnew-head.rst +++ b/pypy/doc/whatsnew-head.rst @@ -101,3 +101,14 @@ Do not recreate the object in PyMemoryView_FromBuffer, rather pass it to the returned PyMemoryViewObject, to take ownership of it. Fixes a ref leak. + +.. branch: missing-tp_new + +Improve mixing app-level classes in c-extensions, especially if the app-level +class has a ``tp_new`` or ``tp_dealloc``. The issue is that c-extensions expect +all the method slots to be filled with a function pointer, where app-level will +search up the mro for an appropriate function at runtime. With this branch we +now fill many more slots in the c-extenion type objects. +Also fix for c-extension type that calls ``tp_hash`` during initialization +(str, unicode types), and fix instantiating c-extension types from built-in +classes by enforcing an order of instaniation. diff --git a/pypy/module/cpyext/include/pyport.h b/pypy/module/cpyext/include/pyport.h --- a/pypy/module/cpyext/include/pyport.h +++ b/pypy/module/cpyext/include/pyport.h @@ -68,6 +68,7 @@ # error "Python needs a typedef for Py_uintptr_t in pyport.h." #endif /* HAVE_UINTPTR_T */ + /******************************* * stat() and fstat() fiddling * *******************************/ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit