mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	gh-94673: Ensure Builtin Static Types are Readied Properly (gh-103940)
There were cases where we do unnecessary work for builtin static types. This also simplifies some work necessary for a per-interpreter GIL.
This commit is contained in:
		
							parent
							
								
									56c7176d1d
								
							
						
					
					
						commit
						d2e2e53f73
					
				
					 21 changed files with 89 additions and 169 deletions
				
			
		|  | @ -3166,10 +3166,8 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) | |||
|     SET_SYS("float_info", PyFloat_GetInfo()); | ||||
|     SET_SYS("int_info", PyLong_GetInfo()); | ||||
|     /* initialize hash_info */ | ||||
|     if (Hash_InfoType.tp_name == NULL) { | ||||
|         if (_PyStructSequence_InitBuiltin(&Hash_InfoType, &hash_info_desc) < 0) { | ||||
|             goto type_init_failed; | ||||
|         } | ||||
|     if (_PyStructSequence_InitBuiltin(&Hash_InfoType, &hash_info_desc) < 0) { | ||||
|         goto type_init_failed; | ||||
|     } | ||||
|     SET_SYS("hash_info", get_hash_info(tstate)); | ||||
|     SET_SYS("maxunicode", PyLong_FromLong(0x10FFFF)); | ||||
|  | @ -3191,11 +3189,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) | |||
| 
 | ||||
| #define ENSURE_INFO_TYPE(TYPE, DESC) \ | ||||
|     do { \ | ||||
|         if (TYPE.tp_name == NULL) { \ | ||||
|             if (_PyStructSequence_InitBuiltinWithFlags( \ | ||||
|                     &TYPE, &DESC, Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { \ | ||||
|                 goto type_init_failed; \ | ||||
|             } \ | ||||
|         if (_PyStructSequence_InitBuiltinWithFlags( \ | ||||
|                 &TYPE, &DESC, Py_TPFLAGS_DISALLOW_INSTANTIATION) < 0) { \ | ||||
|             goto type_init_failed; \ | ||||
|         } \ | ||||
|     } while (0) | ||||
| 
 | ||||
|  | @ -3230,11 +3226,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) | |||
|     SET_SYS("thread_info", PyThread_GetInfo()); | ||||
| 
 | ||||
|     /* initialize asyncgen_hooks */ | ||||
|     if (AsyncGenHooksType.tp_name == NULL) { | ||||
|         if (_PyStructSequence_InitBuiltin( | ||||
|                 &AsyncGenHooksType, &asyncgen_hooks_desc) < 0) { | ||||
|             goto type_init_failed; | ||||
|         } | ||||
|     if (_PyStructSequence_InitBuiltin( | ||||
|             &AsyncGenHooksType, &asyncgen_hooks_desc) < 0) { | ||||
|         goto type_init_failed; | ||||
|     } | ||||
| 
 | ||||
| #ifdef __EMSCRIPTEN__ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Eric Snow
						Eric Snow