From 528b7eb0b0fa5a6bbbf5f3dfbfb7c356edaf031c Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 7 Aug 2001 17:24:28 +0000 Subject: - Rename PyType_InitDict() to PyType_Ready(). - Add an explicit call to PyType_Ready(&PyList_Type) to pythonrun.c (just for the heck of it, really -- we should either explicitly ready all types, or none). --- Include/object.h | 2 +- Modules/xxsubtype.c | 4 ++-- Objects/object.c | 4 ++-- Objects/typeobject.c | 14 +++++++------- Python/pythonrun.c | 5 ++++- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Include/object.h b/Include/object.h index 1f749ec..9f679b0 100644 --- a/Include/object.h +++ b/Include/object.h @@ -297,7 +297,7 @@ extern DL_IMPORT(PyTypeObject) PyBaseObject_Type; /* Most base object type */ #define PyType_Check(op) PyObject_TypeCheck(op, &PyType_Type) -extern DL_IMPORT(int) PyType_InitDict(PyTypeObject *); +extern DL_IMPORT(int) PyType_Ready(PyTypeObject *); extern DL_IMPORT(PyObject *) PyType_GenericAlloc(PyTypeObject *, int); extern DL_IMPORT(PyObject *) PyType_GenericNew(PyTypeObject *, PyObject *, PyObject *); diff --git a/Modules/xxsubtype.c b/Modules/xxsubtype.c index 60d8c7d..5b8e254 100644 --- a/Modules/xxsubtype.c +++ b/Modules/xxsubtype.c @@ -212,9 +212,9 @@ initxxsubtype(void) if (m == NULL) return; - if (PyType_InitDict(&spamlist_type) < 0) + if (PyType_Ready(&spamlist_type) < 0) return; - if (PyType_InitDict(&spamdict_type) < 0) + if (PyType_Ready(&spamdict_type) < 0) return; d = PyModule_GetDict(m); diff --git a/Objects/object.c b/Objects/object.c index 137752d..0d9b3fe 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1160,7 +1160,7 @@ PyObject_GenericGetAttr(PyObject *obj, PyObject *name) PyObject **dictptr; if (tp->tp_dict == NULL) { - if (PyType_InitDict(tp) < 0) + if (PyType_Ready(tp) < 0) return NULL; } @@ -1207,7 +1207,7 @@ PyObject_GenericSetAttr(PyObject *obj, PyObject *name, PyObject *value) PyObject **dictptr; if (tp->tp_dict == NULL) { - if (PyType_InitDict(tp) < 0) + if (PyType_Ready(tp) < 0) return -1; } diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 5d3255a..9f2857c 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -387,7 +387,7 @@ best_base(PyObject *bases) return NULL; } if (base_i->tp_dict == NULL) { - if (PyType_InitDict(base_i) < 0) + if (PyType_Ready(base_i) < 0) return NULL; } candidate = solid_base(base_i); @@ -656,7 +656,7 @@ type_new(PyTypeObject *metatype, PyObject *args, PyObject *kwds) type->tp_free = _PyObject_Del; /* Initialize the rest */ - if (PyType_InitDict(type) < 0) { + if (PyType_Ready(type) < 0) { Py_DECREF(type); return NULL; } @@ -719,7 +719,7 @@ type_getattro(PyTypeObject *type, PyObject *name) /* Initialize this type (we'll assume the metatype is initialized) */ if (type->tp_dict == NULL) { - if (PyType_InitDict(type) < 0) + if (PyType_Ready(type) < 0) return NULL; } @@ -1157,7 +1157,7 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base) } int -PyType_InitDict(PyTypeObject *type) +PyType_Ready(PyTypeObject *type) { PyObject *dict, *bases, *x; PyTypeObject *base; @@ -1185,7 +1185,7 @@ PyType_InitDict(PyTypeObject *type) /* Initialize the base class */ if (base && base->tp_dict == NULL) { - if (PyType_InitDict(base) < 0) + if (PyType_Ready(base) < 0) return -1; } @@ -1892,7 +1892,7 @@ add_tp_new_wrapper(PyTypeObject *type) return PyDict_SetItemString(type->tp_defined, "__new__", func); } -/* This function is called by PyType_InitDict() to populate the type's +/* This function is called by PyType_Ready() to populate the type's dictionary with method descriptors for function slots. For each function slot (like tp_repr) that's defined in the type, one or more corresponding descriptors are added in the type's tp_defined @@ -2335,7 +2335,7 @@ slot_tp_new(PyTypeObject *type, PyObject *args, PyObject *kwds) } /* This is called at the very end of type_new() (even after - PyType_InitDict()) to complete the initialization of dynamic types. + PyType_Ready()) to complete the initialization of dynamic types. The dict argument is the dictionary argument passed to type_new(), which is the local namespace of the class statement, in other words, it contains the methods. For each special method (like diff --git a/Python/pythonrun.c b/Python/pythonrun.c index e616230..cf2c777 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -115,9 +115,12 @@ Py_Initialize(void) Py_FatalError("Py_Initialize: can't make first thread"); (void) PyThreadState_Swap(tstate); - if (PyType_InitDict(&PyType_Type) < 0) + if (PyType_Ready(&PyType_Type) < 0) Py_FatalError("Py_Initialize: can't initialize 'type'"); + if (PyType_Ready(&PyList_Type) < 0) + Py_FatalError("Py_Initialize: can't initialize 'list'"); + interp->modules = PyDict_New(); if (interp->modules == NULL) Py_FatalError("Py_Initialize: can't make modules dictionary"); -- cgit v0.12