[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. |