]> granicus.if.org Git - python/commit
PyClass_New(): put the extended Don Beaudry hook back in. When one of
authorGuido van Rossum <guido@python.org>
Fri, 7 Sep 2001 21:08:32 +0000 (21:08 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 7 Sep 2001 21:08:32 +0000 (21:08 +0000)
commit28d80b1058c73b296f41861ac9f39534c7a3ee4b
tree111413a04d155d54f5da724ce369a5d0cf655609
parent8700b4281af0561d9aafd3cc14c44d79c2a0934b
PyClass_New(): put the extended Don Beaudry hook back in.  When one of
the base classes is not a classic class, and its class (the metaclass)
is callable, call the metaclass to do the deed.

One effect of this is that, when mixing classic and new-style classes
amongst the bases of a class, it doesn't matter whether the first base
class is a classic class or not: you will always get the error
"TypeError: metatype conflict among bases".  (Formerly, with a classic
class first, you'd get "TypeError: PyClass_New: base must be a class".)

Another effect is that multiple inheritance from ExtensionClass.Base,
with a classic class as the first class, transfers control to the
ExtensionClass.Base class.  This is what we need for SF #443239 (and
also for running Zope under 2.2a4, before ExtensionClass is replaced).
Objects/classobject.c