Completely get rid of PyClass and PyInstance.
(classobject.[ch] aren't empty yet because they also define PyMethod.)
This breaks lots of stuff, notably cPickle. But it's a step in the right
direction. I'll clean it up later.
(Also a few unrelated changes, e.g. T_NONE to define a "struct member"
that is always None, and simplification of __hash__ -- these are unfinished.)
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 68d511e..6f1e2b6 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -3363,19 +3363,19 @@
{NULL, NULL}
};
-#if PY_VERSION_HEX < 0x02030000
-DL_EXPORT(void) init_sre(void)
-#else
PyMODINIT_FUNC init_sre(void)
-#endif
{
PyObject* m;
PyObject* d;
PyObject* x;
- /* Patch object types */
- Pattern_Type.ob_type = Match_Type.ob_type =
- Scanner_Type.ob_type = &PyType_Type;
+ /* Initialize object types */
+ if (PyType_Ready(&Pattern_Type) < 0)
+ return;
+ if (PyType_Ready(&Match_Type) < 0)
+ return;
+ if (PyType_Ready(&Scanner_Type) < 0)
+ return;
m = Py_InitModule("_" SRE_MODULE, _functions);
if (m == NULL)