@@ -2909,9 +2909,7 @@ static int
2909
2909
compiler_from_import (struct compiler * c , stmt_ty s )
2910
2910
{
2911
2911
Py_ssize_t i , n = asdl_seq_LEN (s -> v .ImportFrom .names );
2912
-
2913
- PyObject * names = PyTuple_New (n );
2914
- PyObject * level ;
2912
+ PyObject * level , * names ;
2915
2913
static PyObject * empty_string ;
2916
2914
2917
2915
if (!empty_string ) {
@@ -2920,14 +2918,15 @@ compiler_from_import(struct compiler *c, stmt_ty s)
2920
2918
return 0 ;
2921
2919
}
2922
2920
2923
- if (!names )
2924
- return 0 ;
2925
-
2926
2921
level = PyLong_FromLong (s -> v .ImportFrom .level );
2927
2922
if (!level ) {
2928
- Py_DECREF (names );
2929
2923
return 0 ;
2930
2924
}
2925
+ ADDOP_N (c , LOAD_CONST , level , consts );
2926
+
2927
+ names = PyTuple_New (n );
2928
+ if (!names )
2929
+ return 0 ;
2931
2930
2932
2931
/* build up the names */
2933
2932
for (i = 0 ; i < n ; i ++ ) {
@@ -2938,16 +2937,12 @@ compiler_from_import(struct compiler *c, stmt_ty s)
2938
2937
2939
2938
if (s -> lineno > c -> c_future -> ff_lineno && s -> v .ImportFrom .module &&
2940
2939
_PyUnicode_EqualToASCIIString (s -> v .ImportFrom .module , "__future__" )) {
2941
- Py_DECREF (level );
2942
2940
Py_DECREF (names );
2943
2941
return compiler_error (c , "from __future__ imports must occur "
2944
2942
"at the beginning of the file" );
2945
2943
}
2944
+ ADDOP_N (c , LOAD_CONST , names , consts );
2946
2945
2947
- ADDOP_O (c , LOAD_CONST , level , consts );
2948
- Py_DECREF (level );
2949
- ADDOP_O (c , LOAD_CONST , names , consts );
2950
- Py_DECREF (names );
2951
2946
if (s -> v .ImportFrom .module ) {
2952
2947
ADDOP_NAME (c , IMPORT_NAME , s -> v .ImportFrom .module , names );
2953
2948
}
@@ -2970,7 +2965,6 @@ compiler_from_import(struct compiler *c, stmt_ty s)
2970
2965
store_name = alias -> asname ;
2971
2966
2972
2967
if (!compiler_nameop (c , store_name , Store )) {
2973
- Py_DECREF (names );
2974
2968
return 0 ;
2975
2969
}
2976
2970
}
@@ -4739,19 +4733,18 @@ compiler_annassign(struct compiler *c, stmt_ty s)
4739
4733
if (s -> v .AnnAssign .simple &&
4740
4734
(c -> u -> u_scope_type == COMPILER_SCOPE_MODULE ||
4741
4735
c -> u -> u_scope_type == COMPILER_SCOPE_CLASS )) {
4742
- mangled = _Py_Mangle (c -> u -> u_private , targ -> v .Name .id );
4743
- if (!mangled ) {
4744
- return 0 ;
4745
- }
4746
4736
if (c -> c_future -> ff_features & CO_FUTURE_ANNOTATIONS ) {
4747
4737
VISIT (c , annexpr , s -> v .AnnAssign .annotation )
4748
4738
}
4749
4739
else {
4750
4740
VISIT (c , expr , s -> v .AnnAssign .annotation );
4751
4741
}
4752
4742
ADDOP_NAME (c , LOAD_NAME , __annotations__ , names );
4753
- ADDOP_O (c , LOAD_CONST , mangled , consts );
4754
- Py_DECREF (mangled );
4743
+ mangled = _Py_Mangle (c -> u -> u_private , targ -> v .Name .id );
4744
+ if (!mangled ) {
4745
+ return 0 ;
4746
+ }
4747
+ ADDOP_N (c , LOAD_CONST , mangled , consts );
4755
4748
ADDOP (c , STORE_SUBSCR );
4756
4749
}
4757
4750
break ;
0 commit comments