@@ -1086,26 +1086,11 @@ dummy_func(
10861086 }
10871087
10881088 inst (LOAD_BUILD_CLASS , ( -- bc )) {
1089- if (PyDict_CheckExact (BUILTINS ())) {
1090- bc = _PyDict_GetItemWithError (BUILTINS (),
1091- & _Py_ID (__build_class__ ));
1092- if (bc == NULL ) {
1093- if (!_PyErr_Occurred (tstate )) {
1094- _PyErr_SetString (tstate , PyExc_NameError ,
1095- "__build_class__ not found" );
1096- }
1097- ERROR_IF (true, error );
1098- }
1099- Py_INCREF (bc );
1100- }
1101- else {
1102- bc = PyObject_GetItem (BUILTINS (), & _Py_ID (__build_class__ ));
1103- if (bc == NULL ) {
1104- if (_PyErr_ExceptionMatches (tstate , PyExc_KeyError ))
1105- _PyErr_SetString (tstate , PyExc_NameError ,
1106- "__build_class__ not found" );
1107- ERROR_IF (true, error );
1108- }
1089+ ERROR_IF (_PyMapping_LookupItem (BUILTINS (), & _Py_ID (__build_class__ ), & bc ) < 0 , error );
1090+ if (bc == NULL ) {
1091+ _PyErr_SetString (tstate , PyExc_NameError ,
1092+ "__build_class__ not found" );
1093+ ERROR_IF (true, error );
11091094 }
11101095 }
11111096
@@ -1280,25 +1265,9 @@ dummy_func(
12801265
12811266 op (_LOAD_FROM_DICT_OR_GLOBALS , (mod_or_class_dict -- v )) {
12821267 PyObject * name = GETITEM (FRAME_CO_NAMES , oparg );
1283- if (PyDict_CheckExact (mod_or_class_dict )) {
1284- v = PyDict_GetItemWithError (mod_or_class_dict , name );
1285- if (v != NULL ) {
1286- Py_INCREF (v );
1287- }
1288- else if (_PyErr_Occurred (tstate )) {
1289- Py_DECREF (mod_or_class_dict );
1290- goto error ;
1291- }
1292- }
1293- else {
1294- v = PyObject_GetItem (mod_or_class_dict , name );
1295- if (v == NULL ) {
1296- if (!_PyErr_ExceptionMatches (tstate , PyExc_KeyError )) {
1297- Py_DECREF (mod_or_class_dict );
1298- goto error ;
1299- }
1300- _PyErr_Clear (tstate );
1301- }
1268+ if (_PyMapping_LookupItem (mod_or_class_dict , name , & v ) < 0 ) {
1269+ Py_DECREF (mod_or_class_dict );
1270+ goto error ;
13021271 }
13031272 Py_DECREF (mod_or_class_dict );
13041273 if (v == NULL ) {
@@ -1310,28 +1279,14 @@ dummy_func(
13101279 goto error ;
13111280 }
13121281 else {
1313- if (PyDict_CheckExact (BUILTINS ())) {
1314- v = PyDict_GetItemWithError (BUILTINS (), name );
1315- if (v == NULL ) {
1316- if (!_PyErr_Occurred (tstate )) {
1317- format_exc_check_arg (
1318- tstate , PyExc_NameError ,
1319- NAME_ERROR_MSG , name );
1320- }
1321- goto error ;
1322- }
1323- Py_INCREF (v );
1282+ if (_PyMapping_LookupItem (BUILTINS (), name , & v ) < 0 ) {
1283+ goto error ;
13241284 }
1325- else {
1326- v = PyObject_GetItem (BUILTINS (), name );
1327- if (v == NULL ) {
1328- if (_PyErr_ExceptionMatches (tstate , PyExc_KeyError )) {
1329- format_exc_check_arg (
1330- tstate , PyExc_NameError ,
1331- NAME_ERROR_MSG , name );
1332- }
1333- goto error ;
1334- }
1285+ if (v == NULL ) {
1286+ format_exc_check_arg (
1287+ tstate , PyExc_NameError ,
1288+ NAME_ERROR_MSG , name );
1289+ goto error ;
13351290 }
13361291 }
13371292 }
@@ -1381,19 +1336,14 @@ dummy_func(
13811336 /* Slow-path if globals or builtins is not a dict */
13821337
13831338 /* namespace 1: globals */
1384- v = PyObject_GetItem ( GLOBALS (), name );
1339+ ERROR_IF ( _PyMapping_LookupItem ( GLOBALS (), name , & v ) < 0 , error );
13851340 if (v == NULL ) {
1386- ERROR_IF (!_PyErr_ExceptionMatches (tstate , PyExc_KeyError ), error );
1387- _PyErr_Clear (tstate );
1388-
13891341 /* namespace 2: builtins */
1390- v = PyObject_GetItem ( BUILTINS (), name );
1342+ ERROR_IF ( _PyMapping_LookupItem ( BUILTINS (), name , & v ) < 0 , error );
13911343 if (v == NULL ) {
1392- if (_PyErr_ExceptionMatches (tstate , PyExc_KeyError )) {
1393- format_exc_check_arg (
1394- tstate , PyExc_NameError ,
1395- NAME_ERROR_MSG , name );
1396- }
1344+ format_exc_check_arg (
1345+ tstate , PyExc_NameError ,
1346+ NAME_ERROR_MSG , name );
13971347 ERROR_IF (true, error );
13981348 }
13991349 }
@@ -1466,25 +1416,9 @@ dummy_func(
14661416 assert (class_dict );
14671417 assert (oparg >= 0 && oparg < _PyFrame_GetCode (frame )-> co_nlocalsplus );
14681418 name = PyTuple_GET_ITEM (_PyFrame_GetCode (frame )-> co_localsplusnames , oparg );
1469- if (PyDict_CheckExact (class_dict )) {
1470- value = PyDict_GetItemWithError (class_dict , name );
1471- if (value != NULL ) {
1472- Py_INCREF (value );
1473- }
1474- else if (_PyErr_Occurred (tstate )) {
1475- Py_DECREF (class_dict );
1476- goto error ;
1477- }
1478- }
1479- else {
1480- value = PyObject_GetItem (class_dict , name );
1481- if (value == NULL ) {
1482- if (!_PyErr_ExceptionMatches (tstate , PyExc_KeyError )) {
1483- Py_DECREF (class_dict );
1484- goto error ;
1485- }
1486- _PyErr_Clear (tstate );
1487- }
1419+ if (_PyMapping_LookupItem (class_dict , name , & value ) < 0 ) {
1420+ Py_DECREF (class_dict );
1421+ goto error ;
14881422 }
14891423 Py_DECREF (class_dict );
14901424 if (!value ) {
@@ -1622,10 +1556,8 @@ dummy_func(
16221556 }
16231557 else {
16241558 /* do the same if locals() is not a dict */
1625- ann_dict = PyObject_GetItem ( LOCALS (), & _Py_ID (__annotations__ ));
1559+ ERROR_IF ( _PyMapping_LookupItem ( LOCALS (), & _Py_ID (__annotations__ ), & ann_dict ) < 0 , error );
16261560 if (ann_dict == NULL ) {
1627- ERROR_IF (!_PyErr_ExceptionMatches (tstate , PyExc_KeyError ), error );
1628- _PyErr_Clear (tstate );
16291561 ann_dict = PyDict_New ();
16301562 ERROR_IF (ann_dict == NULL , error );
16311563 err = PyObject_SetItem (LOCALS (), & _Py_ID (__annotations__ ),
0 commit comments