Skip to content

Commit ac02062

Browse files
gh-64660: Don't hardcode Argument Clinic return converter result variable name (#104200)
1 parent 06c2a48 commit ac02062

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

Tools/clinic/clinic.py

+14-9
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,7 @@ def __init__(self):
356356
# you should check the _return_value for errors, and
357357
# "goto exit" if there are any.
358358
self.return_conversion = []
359+
self.converter_retval = "_return_value"
359360

360361
# The C statements required to do some operations
361362
# after the end of parsing but before cleaning up.
@@ -3893,15 +3894,15 @@ def __init__(self, *, py_default=None, **kwargs):
38933894
def return_converter_init(self):
38943895
pass
38953896

3896-
def declare(self, data, name="_return_value"):
3897+
def declare(self, data):
38973898
line = []
38983899
add = line.append
38993900
add(self.type)
39003901
if not self.type.endswith('*'):
39013902
add(' ')
3902-
add(name + ';')
3903+
add(data.converter_retval + ';')
39033904
data.declarations.append(''.join(line))
3904-
data.return_value = name
3905+
data.return_value = data.converter_retval
39053906

39063907
def err_occurred_if(self, expr, data):
39073908
data.return_conversion.append('if (({}) && PyErr_Occurred()) {{\n goto exit;\n}}\n'.format(expr))
@@ -3923,8 +3924,10 @@ class bool_return_converter(CReturnConverter):
39233924

39243925
def render(self, function, data):
39253926
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+
)
39283931

39293932
class long_return_converter(CReturnConverter):
39303933
type = 'long'
@@ -3934,9 +3937,10 @@ class long_return_converter(CReturnConverter):
39343937

39353938
def render(self, function, data):
39363939
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)
39383941
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+
)
39403944

39413945
class int_return_converter(long_return_converter):
39423946
type = 'int'
@@ -3978,9 +3982,10 @@ class double_return_converter(CReturnConverter):
39783982

39793983
def render(self, function, data):
39803984
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)
39823986
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+
)
39843989

39853990
class float_return_converter(double_return_converter):
39863991
type = 'float'

0 commit comments

Comments
 (0)