[pygccxml-commit] SF.net SVN: pygccxml: [861] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-01-09 07:11:11
|
Revision: 861 http://svn.sourceforge.net/pygccxml/?rev=861&view=rev Author: roman_yakovenko Date: 2007-01-08 23:11:09 -0800 (Mon, 08 Jan 2007) Log Message: ----------- adding ability to guess call policies for indexing suite v2 Modified Paths: -------------- pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py pyplusplus_dev/unittests/indexing_suites2_tester.py Modified: pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py 2007-01-09 06:20:10 UTC (rev 860) +++ pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py 2007-01-09 07:11:09 UTC (rev 861) @@ -6,7 +6,7 @@ """defines interface for exposing STD containers, using next version of indexing suite""" from pygccxml import declarations - +import call_policies """ method_len method_iter @@ -86,9 +86,21 @@ element_type = property( _get_element_type , doc="Reference to container value_type( mapped_type ) type" ) - def _get_call_policies( self ): - #TODO find out call policies + def _get_call_policies( self ): + if self.__call_policies: + return self.__call_policies + + element_type = None + try: + element_type = self.element_type + except: + return + if declarations.is_const( element_type ): + element_type = declarations.remove_const( element_type ) + if declarations.is_pointer( element_type ): + self.__call_policies = call_policies.return_internal_reference() return self.__call_policies + def _set_call_policies( self, call_policies ): self.__call_policies = call_policies call_policies = property( _get_call_policies, _set_call_policies Modified: pyplusplus_dev/unittests/indexing_suites2_tester.py =================================================================== --- pyplusplus_dev/unittests/indexing_suites2_tester.py 2007-01-09 06:20:10 UTC (rev 860) +++ pyplusplus_dev/unittests/indexing_suites2_tester.py 2007-01-09 07:11:09 UTC (rev 861) @@ -32,8 +32,8 @@ #fvector.indexing_suite.call_policies = module_builder.call_policies.default_call_policies() items_ptr = generator.global_ns.typedef( 'items_ptr_t' ) items_ptr = declarations.remove_declarated( items_ptr.type ) - items_ptr.indexing_suite.call_policies = module_builder.call_policies.return_internal_reference() - + self.failUnless( items_ptr.indexing_suite.call_policies.__class__ + is module_builder.call_policies.return_internal_reference().__class__ ) def run_tests( self, module): fv = module.fvector() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |