Rearrange some class creation and initialization functions
Our class-creation code is getting pretty unruly, since there are four places we can create new classes: 1) extension classes 2) Python-defined classes 3) builtin-defined classes 4) classes created during bootstrapping Then, there are multiple different sets of initialization functions that can be called, each of which initializes different sets of the class attributes. It's not easy to tell what a given initialization function should actually initialize. This change just cleans this up slightly: it renames PystonType_Ready to commonClassSetup to hopefully be more clear about its goal, as well as adds a BoxedClass::finishInitialization() function. It also moves some work out of the BoxedClass() constructor, since this causes issues because it happens before the BoxedHeapClass() constructor runs, which sets certain class slots that affect other parts of class initialization. Things are still pretty complicated but this should help with the multiple inheritance changes that are coming.
Showing
Please register or sign in to comment