diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 2005-06-30 15:00:13 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 2005-06-30 15:00:13 (GMT) |
commit | 62cc1233f9796222cce9638333546357920c6d3d (patch) | |
tree | 52d828c1436b006c2551a7118ce3b9dfe567b418 /Tools | |
parent | 3095ad06505d5b0606a2b1d96a624ba0d9db921e (diff) | |
download | cpython-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.py | 16 |
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() |