]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Minor tweaks, to allow some (out-of-tree, until successful) tinkering
authorJack Jansen <jack.jansen@cwi.nl>
Fri, 10 Jun 2005 10:46:40 +0000 (10:46 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Fri, 10 Jun 2005 10:46:40 +0000 (10:46 +0000)
with C++.

Tools/bgen/bgen/bgenGenerator.py
Tools/bgen/bgen/bgenObjectDefinition.py

index e1f240c629e93ab9d378cf04c5a0e648e5d62b26..471c5fa30034f3cebe648704e313662300b11d8d 100644 (file)
@@ -18,6 +18,7 @@ class BaseFunctionGenerator:
     def __init__(self, name, condition=None):
         if DEBUG: print "<--", name
         self.name = name
+        self.callname = name
         self.prefix = name
         self.objecttype = "PyObject" # Type of _self argument to function
         self.condition = condition
@@ -202,7 +203,7 @@ class FunctionGenerator(BaseFunctionGenerator):
     def callit(self):
         args = ""
         if self.rv:
-            s = "%s = %s(" % (self.rv.name, self.name)
+            s = "%s = %s(" % (self.rv.name, self.callname)
         else:
             s = "%s(" % self.name
         sep = ",\n" + ' '*len(s)
@@ -214,9 +215,9 @@ class FunctionGenerator(BaseFunctionGenerator):
             args = args + s
         if self.rv:
             Output("%s = %s(%s);",
-                   self.rv.name, self.name, args)
+                   self.rv.name, self.callname, args)
         else:
-            Output("%s(%s);", self.name, args)
+            Output("%s(%s);", self.callname, args)
 
     def checkit(self):
         for arg in self.argumentList:
@@ -255,8 +256,7 @@ class MethodGenerator(FunctionGenerator):
         self.itself = Variable(t0, "_self->ob_itself", SelfMode)
         self.argumentList.append(self.itself)
         FunctionGenerator.parseArgumentList(self, args)
-
-
+        
 def _test():
     void = None
     eggs = FunctionGenerator(void, "eggs",
index 72e2678bb0c65162ba87798b4d907be3bb01d166..ffdd5446e177096f90ce42008d72f893fb85907f 100644 (file)
@@ -44,12 +44,8 @@ class ObjectDefinition(GeneratorGroup):
 
         OutHeader2("Object type " + self.name)
 
-        sf = self.static and "static "
-        Output("%sPyTypeObject %s;", sf, self.typename)
-        Output()
-        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
-               self.prefix, self.typename, self.typename)
-        Output()
+        self.outputCheck()
+        
         Output("typedef struct %s {", self.objecttype)
         IndentLevel()
         Output("PyObject_HEAD")
@@ -84,6 +80,14 @@ class ObjectDefinition(GeneratorGroup):
 
         OutHeader2("End object type " + self.name)
 
+    def outputCheck(self):
+        sf = self.static and "static "
+        Output("%sPyTypeObject %s;", sf, self.typename)
+        Output()
+        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
+               self.prefix, self.typename, self.typename)
+        Output()
+
     def outputMethodChain(self):
         Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
                 self.static,    self.prefix, self.prefix, self.basechain)