Created originally on Bitbucket by mattip
Improve mixing app-level classes in c-extensions, especially if the app-level
class has a tp_new
or tp_dealloc
.
c-extensions expect all the method slots to be filled with a function pointer, where app-level will lookup following 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) -
fix instantiating c-extension types from built-in classes by enforcing an order of instaniation.