bpo-33132: Fix more reference counting issues in the compiler. (GH-6323) · python/cpython@aa8e51f (original) (raw)

Original file line number Diff line number Diff line change
@@ -2843,8 +2843,7 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname)
2843 2843 attr = PyUnicode_Substring(name, pos, (dot != -1) ? dot : len);
2844 2844 if (!attr)
2845 2845 return 0;
2846 -ADDOP_O(c, IMPORT_FROM, attr, names);
2847 -Py_DECREF(attr);
2846 +ADDOP_N(c, IMPORT_FROM, attr, names);
2848 2847 if (dot == -1) {
2849 2848 break;
2850 2849 }
@@ -3294,8 +3293,7 @@ compiler_nameop(struct compiler *c, identifier name, expr_context_ty ctx)
3294 3293 "param invalid for local variable");
3295 3294 return 0;
3296 3295 }
3297 -ADDOP_O(c, op, mangled, varnames);
3298 -Py_DECREF(mangled);
3296 +ADDOP_N(c, op, mangled, varnames);
3299 3297 return 1;
3300 3298 case OP_GLOBAL:
3301 3299 switch (ctx) {