2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-25 18:32:24 +00:00

- Fixed bug where GCCXML was generating more than one declaration of a given class

[SVN r18359]
This commit is contained in:
Bruno da Silva de Oliveira
2003-05-08 10:38:51 +00:00
parent 6cecfcb704
commit 97e2628f95
3 changed files with 10 additions and 6 deletions

View File

@@ -1,3 +1,7 @@
08 May 2003
Fixed bug where in a certain cases the GCCXMLParser would end up with multiple
declarations of the same class
22 Apr 2003
- Now shows a warning when the user tries to export a forward-declared class. Forward-declared classes are ignored by the AllFromHeader construct.
- Fixed a bug where classes, functions and enums where being exported, even if excluded from a AllFromHeader construct.

View File

@@ -219,24 +219,24 @@ class GCCXMLParser(object):
def ParseClass(self, id, element):
name = element.get('name')
abstract = bool(int(element.get('abstract', '0')))
bases = self.GetBases(element.get('bases'))
location = self.GetLocation(element.get('location'))
context = self.GetDecl(element.get('context'))
incomplete = bool(element.get('incomplete', False))
if isinstance(context, str):
class_ = Class(name, context, [], abstract, bases)
class_ = Class(name, context, [], abstract, [])
self.AddDecl(class_)
else:
# a nested class
visib = element.get('access', Scope.public)
class_ = NestedClass(
name, context.FullName(), visib, [], abstract, bases)
name, context.FullName(), visib, [], abstract, [])
# we have to add the declaration of the class before trying
# to parse its members, to avoid recursion.
# to parse its members and bases, to avoid recursion.
class_.location = location
class_.incomplete = incomplete
self.Update(id, class_)
# now we can get the members
# now we can get the members and the bases
class_.bases = self.GetBases(element.get('bases'))
class_.members = self.GetMembers(element.get('members'))

View File

@@ -34,7 +34,7 @@ from policies import *
from CppParser import CppParser, CppParserError
import time
__VERSION__ = '0.7.5'
__VERSION__ = '0.7.6'
def RecursiveIncludes(include):
'Return a list containg the include dir and all its subdirectories'