[pygccxml-commit] SF.net SVN: pygccxml: [1008] pygccxml_dev/pygccxml/parser
Brought to you by:
mbaas,
roman_yakovenko
|
From: <rom...@us...> - 2007-04-19 21:13:17
|
Revision: 1008
http://svn.sourceforge.net/pygccxml/?rev=1008&view=rev
Author: roman_yakovenko
Date: 2007-04-19 14:13:19 -0700 (Thu, 19 Apr 2007)
Log Message:
-----------
calculated only once some variables
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/linker.py
pygccxml_dev/pygccxml/parser/scanner.py
Modified: pygccxml_dev/pygccxml/parser/linker.py
===================================================================
--- pygccxml_dev/pygccxml/parser/linker.py 2007-04-19 16:28:15 UTC (rev 1007)
+++ pygccxml_dev/pygccxml/parser/linker.py 2007-04-19 21:13:19 UTC (rev 1008)
@@ -23,9 +23,9 @@
return self.__inst
def _set_inst(self, inst):
self.__inst = inst
- if isinstance( self.__inst, declaration_t ):
- if self.__inst.location is not None:
- self.__inst.location.file_name = self.__files[self.__inst.location.file_name]
+ #use inst, to reduce attribute access time
+ if isinstance( inst, declaration_t ) and inst.location:
+ inst.location.file_name = self.__files[inst.location.file_name]
instance = property( _get_inst, _set_inst )
def __link_type(self, type_id):
@@ -248,4 +248,4 @@
def visit_declarated( self ):
if isinstance( self.__inst.declaration, types.StringTypes ):
- self.__inst.declaration = self.__decls[self.__inst.declaration]
\ No newline at end of file
+ self.__inst.declaration = self.__decls[self.__inst.declaration]
Modified: pygccxml_dev/pygccxml/parser/scanner.py
===================================================================
--- pygccxml_dev/pygccxml/parser/scanner.py 2007-04-19 16:28:15 UTC (rev 1007)
+++ pygccxml_dev/pygccxml/parser/scanner.py 2007-04-19 21:13:19 UTC (rev 1008)
@@ -182,23 +182,21 @@
if name in self.deep_declarations:
self.__inst = obj
self.__read_access( attrs )
+ element_id = attrs.get(XML_AN_ID, None)
if isinstance( obj, declaration_t ):
self.__update_membership( attrs )
- self.__declarations[ attrs[XML_AN_ID] ] = obj
+ self.__declarations[ element_id ] = obj
if not isinstance( obj, namespace_t ):
self.__read_location( obj, attrs )
- if isinstance( obj, scopedef_t):
- #deprecated
- #self.__read_members( obj, attrs )
- if isinstance( obj, class_t ):
- self.__read_bases( obj, attrs )
+ if isinstance( obj, class_t):
+ self.__read_bases( obj, attrs )
self.__read_artificial(obj, attrs)
self.__read_mangled( obj, attrs)
self.__read_demangled( obj, attrs)
elif isinstance( obj, type_t ):
- self.__types[ attrs[XML_AN_ID] ] = obj
+ self.__types[ element_id ] = obj
elif isinstance( obj, types.StringTypes ):
- self.__files[ attrs[XML_AN_ID] ] = obj
+ self.__files[ element_id ] = obj
else:
self.logger.warning( 'Unknown object type has been found.'
+ ' Please report this bug to pygccxml development team.' )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|