Update of /cvsroot/pygccxml/source/pyplusplus/module_builder
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30165/pyplusplus/module_builder
Modified Files:
builder.py
Log Message:
improving "select" methods performance.
Now the performance is not a bottleneck any more
Index: builder.py
===================================================================
RCS file: /cvsroot/pygccxml/source/pyplusplus/module_builder/builder.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** builder.py 22 Mar 2006 08:05:35 -0000 1.5
--- builder.py 29 Mar 2006 04:23:45 -0000 1.6
***************
*** 15,20 ****
class module_builder_t(object):
! def __init__( self, files, gccxml_config=None, compilation_mode=None, cache=None ):
object.__init__( self )
self.__global_ns = self.__parse_declarations( files
, gccxml_config
--- 15,38 ----
class module_builder_t(object):
! def __init__( self
! , files
! , gccxml_path=''
! , working_directory='.'
! , include_paths=None
! , define_symbols=None
! , undefine_symbols=None
! , start_with_declarations=None
! , compilation_verbose=False
! , compilation_mode=None
! , cache=None ):
object.__init__( self )
+ gccxml_config = parser.config_t(
+ gccxml_path=gccxml_path
+ , working_directory=working_directory
+ , include_paths=include_paths
+ , define_symbols=define_symbols
+ , undefine_symbols=undefine_symbols
+ , start_with_declarations=start_with_declarations
+ , verbose=compilation_verbose)
self.__global_ns = self.__parse_declarations( files
, gccxml_config
***************
*** 27,30 ****
--- 45,54 ----
global_ns = property( _get_global_ns, doc="reference to global namespace" )
+ def run_query_optimizer(self):
+ map( lambda decl: decl.init_optimizer()
+ , filter( lambda decl: isinstance( decl, decls_package.scopedef_t )
+ , decls_package.make_flatten( self.__global_ns ) ) )
+ self.__global_ns.init_optimizer()
+
def __parse_declarations( self, files, gccxml_config, compilation_mode, cache ):
if None is gccxml_config:
***************
*** 76,80 ****
def _get_module( self ):
if not self.__code_creator:
! raise RuntimeError( "self.module is equal to None. Did you forget to call create_module function?" )
return self.__code_creator
code_creator = property( _get_module, doc="reference to L{code_creators.module_t} instance" )
--- 100,104 ----
def _get_module( self ):
if not self.__code_creator:
! raise RuntimeError( "self.module is equal to None. Did you forget to call build_code_creator function?" )
return self.__code_creator
code_creator = property( _get_module, doc="reference to L{code_creators.module_t} instance" )
|