mirror of https://github.com/python/cpython.git
Rename 'LOAD_METHOD' specialization stat consts to 'ATTR'. (GH-93812)
This commit is contained in:
parent
ef6e44d392
commit
6b330002b1
|
@ -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…
Reference in New Issue