[pygccxml-commit] SF.net SVN: pygccxml: [924] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-02-24 19:09:21
|
Revision: 924 http://svn.sourceforge.net/pygccxml/?rev=924&view=rev Author: roman_yakovenko Date: 2007-02-24 11:09:22 -0800 (Sat, 24 Feb 2007) Log Message: ----------- adding functionality necessary to implement correct "transfer_ownership" behaviour Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/calldef.py pyplusplus_dev/unittests/member_functions_tester.py Modified: pyplusplus_dev/pyplusplus/code_creators/calldef.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-02-24 18:39:53 UTC (rev 923) +++ pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-02-24 19:09:22 UTC (rev 924) @@ -600,6 +600,11 @@ def create_virtual_body(self): template = [] + + precall_code = self.declaration.override_precall_code + if precall_code: + template.append( os.linesep.join( precall_code ) ) + template.append( 'if( %(override)s func_%(alias)s = this->get_override( "%(alias)s" ) )' ) template.append( self.indent('%(return_)sfunc_%(alias)s( %(args)s );') ) template.append( 'else' ) @@ -680,6 +685,11 @@ return self.unoverriden_function_body() template = [] + + precall_code = self.declaration.override_precall_code + if precall_code: + template.append( os.linesep.join( precall_code ) ) + template.append( '%(override)s func_%(alias)s = this->get_override( "%(alias)s" );' ) template.append( '%(return_)sfunc_%(alias)s( %(args)s );') template = os.linesep.join( template ) @@ -735,6 +745,11 @@ return self.unoverriden_function_body() template = [] + + precall_code = self.declaration.override_precall_code + if precall_code: + template.append( os.linesep.join( precall_code ) ) + template.append( '%(override)s func_%(alias)s = this->get_override( "%(alias)s" );' ) template.append( '%(return_)sfunc_%(alias)s( %(args)s );') template = os.linesep.join( template ) Modified: pyplusplus_dev/unittests/member_functions_tester.py =================================================================== --- pyplusplus_dev/unittests/member_functions_tester.py 2007-02-24 18:39:53 UTC (rev 923) +++ pyplusplus_dev/unittests/member_functions_tester.py 2007-02-24 19:09:22 UTC (rev 924) @@ -45,6 +45,9 @@ mb.class_('mem_fun_constness_t' ).always_expose_using_scope = True + mb.mem_funs().add_override_precall_code( '/*override precall code*/' ) + mb.mem_funs().add_default_precall_code( '/*default precall code*/' ) + def create_py_immutable_by_ref( self, module ): class py_immutable_by_ref( module.immutable_by_ref_t ): def __init__( self ): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |