@@ -356,6 +356,7 @@ def __init__(self):
356
356
# you should check the _return_value for errors, and
357
357
# "goto exit" if there are any.
358
358
self .return_conversion = []
359
+ self .converter_retval = "_return_value"
359
360
360
361
# The C statements required to do some operations
361
362
# after the end of parsing but before cleaning up.
@@ -3893,15 +3894,15 @@ def __init__(self, *, py_default=None, **kwargs):
3893
3894
def return_converter_init (self ):
3894
3895
pass
3895
3896
3896
- def declare (self , data , name = "_return_value" ):
3897
+ def declare (self , data ):
3897
3898
line = []
3898
3899
add = line .append
3899
3900
add (self .type )
3900
3901
if not self .type .endswith ('*' ):
3901
3902
add (' ' )
3902
- add (name + ';' )
3903
+ add (data . converter_retval + ';' )
3903
3904
data .declarations .append ('' .join (line ))
3904
- data .return_value = name
3905
+ data .return_value = data . converter_retval
3905
3906
3906
3907
def err_occurred_if (self , expr , data ):
3907
3908
data .return_conversion .append ('if (({}) && PyErr_Occurred()) {{\n goto exit;\n }}\n ' .format (expr ))
@@ -3923,8 +3924,10 @@ class bool_return_converter(CReturnConverter):
3923
3924
3924
3925
def render (self , function , data ):
3925
3926
self .declare (data )
3926
- self .err_occurred_if ("_return_value == -1" , data )
3927
- data .return_conversion .append ('return_value = PyBool_FromLong((long)_return_value);\n ' )
3927
+ self .err_occurred_if (f"{ data .converter_retval } == -1" , data )
3928
+ data .return_conversion .append (
3929
+ f'return_value = PyBool_FromLong((long){ data .converter_retval } );\n '
3930
+ )
3928
3931
3929
3932
class long_return_converter (CReturnConverter ):
3930
3933
type = 'long'
@@ -3934,9 +3937,10 @@ class long_return_converter(CReturnConverter):
3934
3937
3935
3938
def render (self , function , data ):
3936
3939
self .declare (data )
3937
- self .err_occurred_if ("_return_value == {}-1". format ( self . unsigned_cast ) , data )
3940
+ self .err_occurred_if (f" { data . converter_retval } == { self . unsigned_cast } -1" , data )
3938
3941
data .return_conversion .append (
3939
- '' .join (('return_value = ' , self .conversion_fn , '(' , self .cast , '_return_value);\n ' )))
3942
+ f'return_value = { self .conversion_fn } ({ self .cast } { data .converter_retval } );\n '
3943
+ )
3940
3944
3941
3945
class int_return_converter (long_return_converter ):
3942
3946
type = 'int'
@@ -3978,9 +3982,10 @@ class double_return_converter(CReturnConverter):
3978
3982
3979
3983
def render (self , function , data ):
3980
3984
self .declare (data )
3981
- self .err_occurred_if ("_return_value == -1.0" , data )
3985
+ self .err_occurred_if (f" { data . converter_retval } == -1.0" , data )
3982
3986
data .return_conversion .append (
3983
- 'return_value = PyFloat_FromDouble(' + self .cast + '_return_value);\n ' )
3987
+ f'return_value = PyFloat_FromDouble({ self .cast } { data .converter_retval } );\n '
3988
+ )
3984
3989
3985
3990
class float_return_converter (double_return_converter ):
3986
3991
type = 'float'
0 commit comments