summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2005-06-30 15:00:13 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2005-06-30 15:00:13 (GMT)
commit62cc1233f9796222cce9638333546357920c6d3d (patch)
tree52d828c1436b006c2551a7118ce3b9dfe567b418 /Tools
parent3095ad06505d5b0606a2b1d96a624ba0d9db921e (diff)
downloadcpython-62cc1233f9796222cce9638333546357920c6d3d.zip
cpython-62cc1233f9796222cce9638333546357920c6d3d.tar.gz
cpython-62cc1233f9796222cce9638333546357920c6d3d.tar.bz2
More factorization: added a method getrvforcallit(). This allows a C++
bridge to combine declaration and assignment to the return value temporary, allowing us to handle functions returning const values.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/bgen/bgen/bgenGenerator.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
index 03e8b45..83ff552 100644
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ b/Tools/bgen/bgen/bgenGenerator.py
@@ -213,10 +213,7 @@ class FunctionGenerator(BaseFunctionGenerator):
def callit(self):
args = ""
- if self.rv:
- s = "%s = %s(" % (self.rv.name, self.callname)
- else:
- s = "%s(" % self.name
+ s = "%s%s(" % (self.getrvforcallit(), self.callname)
sep = ",\n" + ' '*len(s)
for arg in self.argumentList:
if arg is self.rv:
@@ -224,12 +221,15 @@ class FunctionGenerator(BaseFunctionGenerator):
s = arg.passArgument()
if args: s = sep + s
args = args + s
+ Output("%s%s(%s);",
+ self.getrvforcallit(), self.callname, args)
+
+ def getrvforcallit(self):
if self.rv:
- Output("%s = %s(%s);",
- self.rv.name, self.callname, args)
+ return "%s = " % self.rv.name
else:
- Output("%s(%s);", self.callname, args)
-
+ return ""
+
def checkit(self):
for arg in self.argumentList:
arg.errorCheck()