mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Rename 'LOAD_METHOD' specialization stat consts to 'ATTR'. (GH-93812)
This commit is contained in:
		
							parent
							
								
									ef6e44d392
								
							
						
					
					
						commit
						6b330002b1
					
				
					 1 changed files with 14 additions and 17 deletions
				
			
		|  | @ -358,16 +358,13 @@ miss_counter_start(void) { | ||||||
| #define SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT 18 | #define SPEC_FAIL_ATTR_NON_STRING_OR_SPLIT 18 | ||||||
| #define SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND 19 | #define SPEC_FAIL_ATTR_MODULE_ATTR_NOT_FOUND 19 | ||||||
| 
 | 
 | ||||||
| /* Methods */ | #define SPEC_FAIL_ATTR_SHADOWED 21 | ||||||
| 
 | #define SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD 22 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_METHOD 20 | #define SPEC_FAIL_ATTR_CLASS_METHOD_OBJ 23 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_IS_ATTR 21 | #define SPEC_FAIL_ATTR_OBJECT_SLOT 24 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD 22 | #define SPEC_FAIL_ATTR_HAS_MANAGED_DICT 25 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ 23 | #define SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE 26 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT 24 | #define SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE 27 | ||||||
| #define SPEC_FAIL_LOAD_METHOD_HAS_MANAGED_DICT 25 |  | ||||||
| #define SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE 26 |  | ||||||
| #define SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE 27 |  | ||||||
| 
 | 
 | ||||||
| /* Binary subscr and store subscr */ | /* Binary subscr and store subscr */ | ||||||
| 
 | 
 | ||||||
|  | @ -863,7 +860,7 @@ load_attr_fail_kind(DescriptorClassification kind) | ||||||
|         case PROPERTY: |         case PROPERTY: | ||||||
|             return SPEC_FAIL_ATTR_PROPERTY; |             return SPEC_FAIL_ATTR_PROPERTY; | ||||||
|         case OBJECT_SLOT: |         case OBJECT_SLOT: | ||||||
|             return SPEC_FAIL_LOAD_METHOD_OBJECT_SLOT; |             return SPEC_FAIL_ATTR_OBJECT_SLOT; | ||||||
|         case OTHER_SLOT: |         case OTHER_SLOT: | ||||||
|             return SPEC_FAIL_ATTR_NON_OBJECT_SLOT; |             return SPEC_FAIL_ATTR_NON_OBJECT_SLOT; | ||||||
|         case DUNDER_CLASS: |         case DUNDER_CLASS: | ||||||
|  | @ -873,15 +870,15 @@ load_attr_fail_kind(DescriptorClassification kind) | ||||||
|         case GETSET_OVERRIDDEN: |         case GETSET_OVERRIDDEN: | ||||||
|             return SPEC_FAIL_OVERRIDDEN; |             return SPEC_FAIL_OVERRIDDEN; | ||||||
|         case BUILTIN_CLASSMETHOD: |         case BUILTIN_CLASSMETHOD: | ||||||
|             return SPEC_FAIL_LOAD_METHOD_BUILTIN_CLASS_METHOD; |             return SPEC_FAIL_ATTR_BUILTIN_CLASS_METHOD; | ||||||
|         case PYTHON_CLASSMETHOD: |         case PYTHON_CLASSMETHOD: | ||||||
|             return SPEC_FAIL_LOAD_METHOD_CLASS_METHOD_OBJ; |             return SPEC_FAIL_ATTR_CLASS_METHOD_OBJ; | ||||||
|         case NON_OVERRIDING: |         case NON_OVERRIDING: | ||||||
|             return SPEC_FAIL_ATTR_NON_OVERRIDING_DESCRIPTOR; |             return SPEC_FAIL_ATTR_NON_OVERRIDING_DESCRIPTOR; | ||||||
|         case NON_DESCRIPTOR: |         case NON_DESCRIPTOR: | ||||||
|             return SPEC_FAIL_ATTR_NOT_DESCRIPTOR; |             return SPEC_FAIL_ATTR_NOT_DESCRIPTOR; | ||||||
|         case ABSENT: |         case ABSENT: | ||||||
|             return SPEC_FAIL_LOAD_METHOD_INSTANCE_ATTRIBUTE; |             return SPEC_FAIL_ATTR_INSTANCE_ATTRIBUTE; | ||||||
|     } |     } | ||||||
|     Py_UNREACHABLE(); |     Py_UNREACHABLE(); | ||||||
| } | } | ||||||
|  | @ -905,7 +902,7 @@ specialize_class_load_attr(PyObject *owner, _Py_CODEUNIT *instr, | ||||||
| #ifdef Py_STATS | #ifdef Py_STATS | ||||||
|         case ABSENT: |         case ABSENT: | ||||||
|             if (_PyType_Lookup(Py_TYPE(owner), name) != NULL) { |             if (_PyType_Lookup(Py_TYPE(owner), name) != NULL) { | ||||||
|                 SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_LOAD_METHOD_METACLASS_ATTRIBUTE); |                 SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_METACLASS_ATTRIBUTE); | ||||||
|             } |             } | ||||||
|             else { |             else { | ||||||
|                 SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); |                 SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_EXPECTED_ERROR); | ||||||
|  | @ -975,7 +972,7 @@ PyObject *descr, DescriptorClassification kind) | ||||||
|     if (dictkind == MANAGED_VALUES || dictkind == OFFSET_DICT) { |     if (dictkind == MANAGED_VALUES || dictkind == OFFSET_DICT) { | ||||||
|         Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); |         Py_ssize_t index = _PyDictKeys_StringLookup(keys, name); | ||||||
|         if (index != DKIX_EMPTY) { |         if (index != DKIX_EMPTY) { | ||||||
|             SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_LOAD_METHOD_IS_ATTR); |             SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_SHADOWED); | ||||||
|             goto fail; |             goto fail; | ||||||
|         } |         } | ||||||
|         uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(keys); |         uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(keys); | ||||||
|  | @ -993,7 +990,7 @@ PyObject *descr, DescriptorClassification kind) | ||||||
|             _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_VALUES); |             _Py_SET_OPCODE(*instr, LOAD_ATTR_METHOD_WITH_VALUES); | ||||||
|             break; |             break; | ||||||
|         case MANAGED_DICT: |         case MANAGED_DICT: | ||||||
|             SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_LOAD_METHOD_HAS_MANAGED_DICT); |             SPECIALIZATION_FAIL(LOAD_ATTR, SPEC_FAIL_ATTR_HAS_MANAGED_DICT); | ||||||
|             goto fail; |             goto fail; | ||||||
|         case OFFSET_DICT: |         case OFFSET_DICT: | ||||||
|             assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); |             assert(owner_cls->tp_dictoffset > 0 && owner_cls->tp_dictoffset <= INT16_MAX); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mark Shannon
						Mark Shannon