diff --git a/Misc/NEWS b/Misc/NEWS index 2e709cbcdd1..7a48b062045 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -14,6 +14,8 @@ Core and Builtins Library ------- +- Issue #25060: Correctly compute stack usage of the BUILD_MAP opcode. + - Issue #24857: Comparing call_args to a long sequence now correctly returns a boolean result instead of raising an exception. Patch by A Kaptur. diff --git a/Python/compile.c b/Python/compile.c index cfeab0fdfef..97bb12ee671 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -985,7 +985,7 @@ PyCompile_OpcodeStackEffect(int opcode, int oparg) case BUILD_MAP_UNPACK_WITH_CALL: return 1 - (oparg & 0xFF); case BUILD_MAP: - return 1; + return 1 - 2*oparg; case LOAD_ATTR: return 0; case COMPARE_OP: diff --git a/Python/importlib_external.h b/Python/importlib_external.h index aea434c83de..48d6be58eee 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -1395,7 +1395,7 @@ const unsigned char _Py_M__importlib_external[] = { 32,83,111,117,114,99,101,76,111,97,100,101,114,32,117,115, 105,110,103,32,116,104,101,32,102,105,108,101,32,115,121,115, 116,101,109,46,99,2,0,0,0,0,0,0,0,3,0,0, - 0,5,0,0,0,67,0,0,0,115,34,0,0,0,116,0, + 0,4,0,0,0,67,0,0,0,115,34,0,0,0,116,0, 0,124,1,0,131,1,0,125,2,0,100,1,0,124,2,0, 106,1,0,100,2,0,124,2,0,106,2,0,105,2,0,83, 41,3,122,33,82,101,116,117,114,110,32,116,104,101,32,109,