]> granicus.if.org Git - python/commitdiff
Optionally weed out duplicate prototypes for the same function (which
authorJack Jansen <jack.jansen@cwi.nl>
Tue, 12 Dec 2000 22:24:35 +0000 (22:24 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Tue, 12 Dec 2000 22:24:35 +0000 (22:24 +0000)
happens because the scanner ignores preprocessor #ifs).

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

index 2c0a399e2293ce050c2d7ff2bef7004eef559cc9..bf81096fbab9469dea142062a39a72cfa3b70f3f 100644 (file)
@@ -67,6 +67,10 @@ class BaseFunctionGenerator:
        def docstring(self):
                return None
 
+       def __cmp__(self, other):
+               if not hasattr(other, 'name'):
+                       return cmp(id(self), id(other))
+               return cmp(self.name, other.name)
 
 _stringify_map = {'\n': '\\n', '\t': '\\t', '\r': '\\r', '\b': '\\b',
                   '\e': '\\e', '\a': '\\a', '\f': '\\f', '"': '\\"'}
index 294828f76c660564afd1cfe0c738ac8f4a552824..5a6290539b8a9ebfd1c9e77cef2bb778a9c3fa9d 100644 (file)
@@ -6,7 +6,11 @@ class GeneratorGroup:
                self.prefix = prefix
                self.generators = []
 
-       def add(self, g):
+       def add(self, g, dupcheck=0):
+               if dupcheck:
+                       if g in self.generators:
+                               print 'DUP', g.name
+                               return
                g.setprefix(self.prefix)
                self.generators.append(g)
 
index d554f2f54b1e6cb0cb45f6ff9b5c9662b455ef09..f3d120c3c50071c6a66c6abe2dac3a319369cbe2 100644 (file)
@@ -23,9 +23,9 @@ class ObjectDefinition(GeneratorGroup):
                self.static = "static " # set to "" to make <type>_New and <type>_Convert public
                self.basechain = "NULL" # set to &<basetype>_chain to chain methods
 
-       def add(self, g):
+       def add(self, g, dupcheck=0):
                g.setselftype(self.objecttype, self.itselftype)
-               GeneratorGroup.add(self, g)
+               GeneratorGroup.add(self, g, dupcheck)
 
        def reference(self):
                # In case we are referenced from a module