]> granicus.if.org Git - python/commitdiff
More factorization: added a method getrvforcallit(). This allows a C++
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 30 Jun 2005 15:00:13 +0000 (15:00 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 30 Jun 2005 15:00:13 +0000 (15:00 +0000)
bridge to combine declaration and assignment to the return value
temporary, allowing us to handle functions returning const values.

Tools/bgen/bgen/bgenGenerator.py

index 03e8b45debc4ae52b24ab4f6b764c2ebdd416819..83ff552b0cb6f3b940dfdfefe185b1e96346b1b3 100644 (file)
@@ -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()