mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	gh-97588: Move ctypes struct/union layout logic to Python (GH-123352)
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									1fdfce9452
								
							
						
					
					
						commit
						ce9f84a47b
					
				
					 12 changed files with 809 additions and 671 deletions
				
			
		|  | @ -738,7 +738,6 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abc_impl)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abstract_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_active)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_align_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_anonymous_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_argtypes_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_as_parameter_)); | ||||
|  | @ -759,21 +758,18 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_initializing)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_io)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_is_text_encoding)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_layout_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_length_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_limbo)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_lock_unlock_module)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_loop)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_needs_com_addref_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_only_immortal)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_pack_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_restype_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_showwarnmsg)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_shutdown)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_slotnames)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime_datetime)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_swappedbytes_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_type_)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_uninitialized_submodules)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); | ||||
|  | @ -787,6 +783,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_parent)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aggregate_class)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(alias)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(align)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(allow_code)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(append)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arg)); | ||||
|  | @ -806,6 +803,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(before)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(big)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(binary_form)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bit_size)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(block)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bound)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer)); | ||||
|  | @ -934,6 +932,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd2)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fdel)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fget)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fields)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file_actions)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filename)); | ||||
|  | @ -950,6 +949,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fold)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(follow_symlinks)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(format)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(format_spec)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(from_param)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromlist)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromtimestamp)); | ||||
|  | @ -986,6 +986,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(importlib)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(in_fd)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(incoming)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(index)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(indexgroup)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inf)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(infer_variance)); | ||||
|  | @ -1006,6 +1007,7 @@ _PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { | |||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intersection)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(interval)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_running)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_struct)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isatty)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isinstance)); | ||||
|     _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isoformat)); | ||||
|  |  | |||
|  | @ -227,7 +227,6 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(_abc_impl) | ||||
|         STRUCT_FOR_ID(_abstract_) | ||||
|         STRUCT_FOR_ID(_active) | ||||
|         STRUCT_FOR_ID(_align_) | ||||
|         STRUCT_FOR_ID(_anonymous_) | ||||
|         STRUCT_FOR_ID(_argtypes_) | ||||
|         STRUCT_FOR_ID(_as_parameter_) | ||||
|  | @ -248,21 +247,18 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(_initializing) | ||||
|         STRUCT_FOR_ID(_io) | ||||
|         STRUCT_FOR_ID(_is_text_encoding) | ||||
|         STRUCT_FOR_ID(_layout_) | ||||
|         STRUCT_FOR_ID(_length_) | ||||
|         STRUCT_FOR_ID(_limbo) | ||||
|         STRUCT_FOR_ID(_lock_unlock_module) | ||||
|         STRUCT_FOR_ID(_loop) | ||||
|         STRUCT_FOR_ID(_needs_com_addref_) | ||||
|         STRUCT_FOR_ID(_only_immortal) | ||||
|         STRUCT_FOR_ID(_pack_) | ||||
|         STRUCT_FOR_ID(_restype_) | ||||
|         STRUCT_FOR_ID(_showwarnmsg) | ||||
|         STRUCT_FOR_ID(_shutdown) | ||||
|         STRUCT_FOR_ID(_slotnames) | ||||
|         STRUCT_FOR_ID(_strptime) | ||||
|         STRUCT_FOR_ID(_strptime_datetime) | ||||
|         STRUCT_FOR_ID(_swappedbytes_) | ||||
|         STRUCT_FOR_ID(_type_) | ||||
|         STRUCT_FOR_ID(_uninitialized_submodules) | ||||
|         STRUCT_FOR_ID(_warn_unawaited_coroutine) | ||||
|  | @ -276,6 +272,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(after_in_parent) | ||||
|         STRUCT_FOR_ID(aggregate_class) | ||||
|         STRUCT_FOR_ID(alias) | ||||
|         STRUCT_FOR_ID(align) | ||||
|         STRUCT_FOR_ID(allow_code) | ||||
|         STRUCT_FOR_ID(append) | ||||
|         STRUCT_FOR_ID(arg) | ||||
|  | @ -295,6 +292,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(before) | ||||
|         STRUCT_FOR_ID(big) | ||||
|         STRUCT_FOR_ID(binary_form) | ||||
|         STRUCT_FOR_ID(bit_size) | ||||
|         STRUCT_FOR_ID(block) | ||||
|         STRUCT_FOR_ID(bound) | ||||
|         STRUCT_FOR_ID(buffer) | ||||
|  | @ -423,6 +421,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(fd2) | ||||
|         STRUCT_FOR_ID(fdel) | ||||
|         STRUCT_FOR_ID(fget) | ||||
|         STRUCT_FOR_ID(fields) | ||||
|         STRUCT_FOR_ID(file) | ||||
|         STRUCT_FOR_ID(file_actions) | ||||
|         STRUCT_FOR_ID(filename) | ||||
|  | @ -439,6 +438,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(fold) | ||||
|         STRUCT_FOR_ID(follow_symlinks) | ||||
|         STRUCT_FOR_ID(format) | ||||
|         STRUCT_FOR_ID(format_spec) | ||||
|         STRUCT_FOR_ID(from_param) | ||||
|         STRUCT_FOR_ID(fromlist) | ||||
|         STRUCT_FOR_ID(fromtimestamp) | ||||
|  | @ -475,6 +475,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(importlib) | ||||
|         STRUCT_FOR_ID(in_fd) | ||||
|         STRUCT_FOR_ID(incoming) | ||||
|         STRUCT_FOR_ID(index) | ||||
|         STRUCT_FOR_ID(indexgroup) | ||||
|         STRUCT_FOR_ID(inf) | ||||
|         STRUCT_FOR_ID(infer_variance) | ||||
|  | @ -495,6 +496,7 @@ struct _Py_global_strings { | |||
|         STRUCT_FOR_ID(intersection) | ||||
|         STRUCT_FOR_ID(interval) | ||||
|         STRUCT_FOR_ID(is_running) | ||||
|         STRUCT_FOR_ID(is_struct) | ||||
|         STRUCT_FOR_ID(isatty) | ||||
|         STRUCT_FOR_ID(isinstance) | ||||
|         STRUCT_FOR_ID(isoformat) | ||||
|  |  | |||
							
								
								
									
										10
									
								
								Include/internal/pycore_runtime_init_generated.h
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										10
									
								
								Include/internal/pycore_runtime_init_generated.h
									
										
									
										generated
									
									
									
								
							|  | @ -736,7 +736,6 @@ extern "C" { | |||
|     INIT_ID(_abc_impl), \ | ||||
|     INIT_ID(_abstract_), \ | ||||
|     INIT_ID(_active), \ | ||||
|     INIT_ID(_align_), \ | ||||
|     INIT_ID(_anonymous_), \ | ||||
|     INIT_ID(_argtypes_), \ | ||||
|     INIT_ID(_as_parameter_), \ | ||||
|  | @ -757,21 +756,18 @@ extern "C" { | |||
|     INIT_ID(_initializing), \ | ||||
|     INIT_ID(_io), \ | ||||
|     INIT_ID(_is_text_encoding), \ | ||||
|     INIT_ID(_layout_), \ | ||||
|     INIT_ID(_length_), \ | ||||
|     INIT_ID(_limbo), \ | ||||
|     INIT_ID(_lock_unlock_module), \ | ||||
|     INIT_ID(_loop), \ | ||||
|     INIT_ID(_needs_com_addref_), \ | ||||
|     INIT_ID(_only_immortal), \ | ||||
|     INIT_ID(_pack_), \ | ||||
|     INIT_ID(_restype_), \ | ||||
|     INIT_ID(_showwarnmsg), \ | ||||
|     INIT_ID(_shutdown), \ | ||||
|     INIT_ID(_slotnames), \ | ||||
|     INIT_ID(_strptime), \ | ||||
|     INIT_ID(_strptime_datetime), \ | ||||
|     INIT_ID(_swappedbytes_), \ | ||||
|     INIT_ID(_type_), \ | ||||
|     INIT_ID(_uninitialized_submodules), \ | ||||
|     INIT_ID(_warn_unawaited_coroutine), \ | ||||
|  | @ -785,6 +781,7 @@ extern "C" { | |||
|     INIT_ID(after_in_parent), \ | ||||
|     INIT_ID(aggregate_class), \ | ||||
|     INIT_ID(alias), \ | ||||
|     INIT_ID(align), \ | ||||
|     INIT_ID(allow_code), \ | ||||
|     INIT_ID(append), \ | ||||
|     INIT_ID(arg), \ | ||||
|  | @ -804,6 +801,7 @@ extern "C" { | |||
|     INIT_ID(before), \ | ||||
|     INIT_ID(big), \ | ||||
|     INIT_ID(binary_form), \ | ||||
|     INIT_ID(bit_size), \ | ||||
|     INIT_ID(block), \ | ||||
|     INIT_ID(bound), \ | ||||
|     INIT_ID(buffer), \ | ||||
|  | @ -932,6 +930,7 @@ extern "C" { | |||
|     INIT_ID(fd2), \ | ||||
|     INIT_ID(fdel), \ | ||||
|     INIT_ID(fget), \ | ||||
|     INIT_ID(fields), \ | ||||
|     INIT_ID(file), \ | ||||
|     INIT_ID(file_actions), \ | ||||
|     INIT_ID(filename), \ | ||||
|  | @ -948,6 +947,7 @@ extern "C" { | |||
|     INIT_ID(fold), \ | ||||
|     INIT_ID(follow_symlinks), \ | ||||
|     INIT_ID(format), \ | ||||
|     INIT_ID(format_spec), \ | ||||
|     INIT_ID(from_param), \ | ||||
|     INIT_ID(fromlist), \ | ||||
|     INIT_ID(fromtimestamp), \ | ||||
|  | @ -984,6 +984,7 @@ extern "C" { | |||
|     INIT_ID(importlib), \ | ||||
|     INIT_ID(in_fd), \ | ||||
|     INIT_ID(incoming), \ | ||||
|     INIT_ID(index), \ | ||||
|     INIT_ID(indexgroup), \ | ||||
|     INIT_ID(inf), \ | ||||
|     INIT_ID(infer_variance), \ | ||||
|  | @ -1004,6 +1005,7 @@ extern "C" { | |||
|     INIT_ID(intersection), \ | ||||
|     INIT_ID(interval), \ | ||||
|     INIT_ID(is_running), \ | ||||
|     INIT_ID(is_struct), \ | ||||
|     INIT_ID(isatty), \ | ||||
|     INIT_ID(isinstance), \ | ||||
|     INIT_ID(isoformat), \ | ||||
|  |  | |||
							
								
								
									
										40
									
								
								Include/internal/pycore_unicodeobject_generated.h
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										40
									
								
								Include/internal/pycore_unicodeobject_generated.h
									
										
									
										generated
									
									
									
								
							|  | @ -708,10 +708,6 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_align_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_anonymous_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -792,10 +788,6 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_layout_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_length_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -820,10 +812,6 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_pack_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_restype_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -848,10 +836,6 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_swappedbytes_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(_type_); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -904,6 +888,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(align); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(allow_code); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -980,6 +968,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(bit_size); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(block); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -1492,6 +1484,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(fields); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(file); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -1556,6 +1552,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(format_spec); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(from_param); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -1700,6 +1700,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(index); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(indexgroup); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  | @ -1780,6 +1784,10 @@ _PyUnicode_InitStaticStrings(PyInterpreterState *interp) { | |||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(is_struct); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|     assert(PyUnicode_GET_LENGTH(string) != 1); | ||||
|     string = &_Py_ID(isatty); | ||||
|     _PyUnicode_InternStatic(interp, &string); | ||||
|     assert(_PyUnicode_CheckConsistency(string, 1)); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Petr Viktorin
						Petr Viktorin