summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-12-09 23:25:00 +0000
committerJack Jansen <jack.jansen@cwi.nl>2001-12-09 23:25:00 +0000
commit5801a2d8e3769a64fc0eac0111c4310d72651d98 (patch)
treeeead87be0bfb31029d5cc05106a6597e21018f60 /Tools
parentb2fb202bc24dc3125f07838ae9cbf5830e71c9d5 (diff)
downloadcpython-git-5801a2d8e3769a64fc0eac0111c4310d72651d98.tar.gz
The module generator now tells its object generators about the module name (through the new setmodulename() method). If the module name has been set the object generators output it as part of the tp_name field for the object type.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/bgen/bgen/bgenModule.py1
-rw-r--r--Tools/bgen/bgen/bgenObjectDefinition.py9
2 files changed, 9 insertions, 1 deletions
diff --git a/Tools/bgen/bgen/bgenModule.py b/Tools/bgen/bgen/bgenModule.py
index 5f94b90412..ea1ea230a7 100644
--- a/Tools/bgen/bgen/bgenModule.py
+++ b/Tools/bgen/bgen/bgenModule.py
@@ -19,6 +19,7 @@ class Module(GeneratorGroup):
def addobject(self, od):
self.generators.append(od)
self.typeobjects.append(od)
+ od.setmodulename(self.name)
def generate(self):
OutHeader1("Module " + self.name)
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
index 1d5cb22795..71cf21da8e 100644
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ b/Tools/bgen/bgen/bgenObjectDefinition.py
@@ -22,6 +22,7 @@ class ObjectDefinition(GeneratorGroup):
self.typename = name + '_Type'
self.argref = "" # set to "*" if arg to <type>_New should be pointer
self.static = "static " # set to "" to make <type>_New and <type>_Convert public
+ self.modulename = None
def add(self, g, dupcheck=0):
g.setselftype(self.objecttype, self.itselftype)
@@ -30,6 +31,9 @@ class ObjectDefinition(GeneratorGroup):
def reference(self):
# In case we are referenced from a module
pass
+
+ def setmodulename(self, name):
+ self.modulename = name
def generate(self):
# XXX This should use long strings and %(varname)s substitution!
@@ -166,7 +170,10 @@ class ObjectDefinition(GeneratorGroup):
IndentLevel()
Output("PyObject_HEAD_INIT(NULL)")
Output("0, /*ob_size*/")
- Output("\"%s\", /*tp_name*/", self.name)
+ if self.modulename:
+ Output("\"%s.%s\", /*tp_name*/", self.modulename, self.name)
+ else:
+ Output("\"%s\", /*tp_name*/", self.name)
Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
Output("0, /*tp_itemsize*/")
Output("/* methods */")