mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	- 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).
This commit is contained in:
		
							parent
							
								
									c5943b1c8c
								
							
						
					
					
						commit
						528b7eb0b0
					
				
					 5 changed files with 16 additions and 13 deletions
				
			
		|  | @ -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 *); | ||||
|  |  | |||
|  | @ -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); | ||||
|  |  | |||
|  | @ -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; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Guido van Rossum
						Guido van Rossum