Commit e4be74b7 authored by Jack Jansen's avatar Jack Jansen

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.
parent 6a1900c4
...@@ -213,10 +213,7 @@ class FunctionGenerator(BaseFunctionGenerator): ...@@ -213,10 +213,7 @@ class FunctionGenerator(BaseFunctionGenerator):
def callit(self): def callit(self):
args = "" args = ""
if self.rv: s = "%s%s(" % (self.getrvforcallit(), self.callname)
s = "%s = %s(" % (self.rv.name, self.callname)
else:
s = "%s(" % self.name
sep = ",\n" + ' '*len(s) sep = ",\n" + ' '*len(s)
for arg in self.argumentList: for arg in self.argumentList:
if arg is self.rv: if arg is self.rv:
...@@ -224,12 +221,15 @@ class FunctionGenerator(BaseFunctionGenerator): ...@@ -224,12 +221,15 @@ class FunctionGenerator(BaseFunctionGenerator):
s = arg.passArgument() s = arg.passArgument()
if args: s = sep + s if args: s = sep + s
args = args + s args = args + s
Output("%s%s(%s);",
self.getrvforcallit(), self.callname, args)
def getrvforcallit(self):
if self.rv: if self.rv:
Output("%s = %s(%s);", return "%s = " % self.rv.name
self.rv.name, self.callname, args)
else: else:
Output("%s(%s);", self.callname, args) return ""
def checkit(self): def checkit(self):
for arg in self.argumentList: for arg in self.argumentList:
arg.errorCheck() arg.errorCheck()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment