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