[pygccxml-commit] SF.net SVN: pygccxml: [930] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-02-25 11:04:28
|
Revision: 930 http://svn.sourceforge.net/pygccxml/?rev=930&view=rev Author: roman_yakovenko Date: 2007-02-25 03:04:28 -0800 (Sun, 25 Feb 2007) Log Message: ----------- fixing bug, which will prevent creation of __call_policies.hpp file Modified Paths: -------------- pyplusplus_dev/pyplusplus/decl_wrappers/__init__.py pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py pyplusplus_dev/pyplusplus/module_creator/creator.py Modified: pyplusplus_dev/pyplusplus/decl_wrappers/__init__.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/__init__.py 2007-02-25 09:13:50 UTC (rev 929) +++ pyplusplus_dev/pyplusplus/decl_wrappers/__init__.py 2007-02-25 11:04:28 UTC (rev 930) @@ -84,7 +84,6 @@ from call_policies import return_value_policy from call_policies import return_pointee_value from call_policies import is_return_opaque_pointer_policy -from call_policies import is_return_pointee_value_policy from call_policies import custom_call_policies_t from call_policies import custom_call_policies from call_policies import convert_array_to_tuple_t Modified: pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2007-02-25 09:13:50 UTC (rev 929) +++ pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2007-02-25 11:04:28 UTC (rev 930) @@ -50,6 +50,10 @@ #Small hack that allows to write nicer code return False + def is_predefined( self ): + """Returns True if call policy is defined in Boost.Python library, False otherwise""" + return True + def _create_impl( self, function_creator ): raise NotImplementedError() @@ -214,6 +218,16 @@ else: return [self.result_converter_generator] + def is_predefined( self ): + """Returns True if call policy is defined in Boost.Python library, False otherwise""" + global return_pointee_value + if self.result_converter_generator == return_pointee_value: + return False + else: + return True + + + copy_const_reference = '::boost::python::copy_const_reference' copy_non_const_reference = '::boost::python::copy_non_const_reference' manage_new_object = '::boost::python::manage_new_object' @@ -230,12 +244,6 @@ return isinstance( policy, return_value_policy_t ) \ and policy.result_converter_generator == return_opaque_pointer -def is_return_pointee_value_policy( policy ): - """returns True is policy represents return_value_policy<return_pointee_value>, False otherwise""" - return isinstance( policy, return_value_policy_t ) \ - and policy.result_converter_generator == return_pointee_value - - class custom_call_policies_t(call_policy_t): """implementation for user defined call policies""" def __init__( self, call_policies ): @@ -271,6 +279,10 @@ self._memory_manager = memory_manager self._make_objec_call_policies = make_object_call_policies + def is_predefined( self ): + """Returns True if call policy is defined in Boost.Python library, False otherwise""" + return False + def _get_array_size( self ): return self._array_size def _set_array_size( self, new_array_size): @@ -315,6 +327,10 @@ self._get_size_class = get_size_class self._value_policies = value_policies + def is_predefined( self ): + """Returns True if call policy is defined in Boost.Python library, False otherwise""" + return False + def _get_get_size_class( self ): return self._get_size_class def _set_get_size_class( self, new_get_size_class): Modified: pyplusplus_dev/pyplusplus/module_creator/creator.py =================================================================== --- pyplusplus_dev/pyplusplus/module_creator/creator.py 2007-02-25 09:13:50 UTC (rev 929) +++ pyplusplus_dev/pyplusplus/module_creator/creator.py 2007-02-25 11:04:28 UTC (rev 930) @@ -127,7 +127,7 @@ self.__free_operators = [] self.__exposed_free_fun_overloads = set() self.__opaque_types_manager = opaque_types_manager.manager_t( self.__extmodule ) - self.__return_pointee_value_exists = False + self.__custom_call_policies_included = False self.__dependencies_manager = dependencies_manager.manager_t(self.decl_logger) @@ -347,13 +347,16 @@ self.__module_body.adopt_creators( creators, 0 ) def __on_demand_include_call_policies( self, call_policy ): - if not self.__return_pointee_value_exists \ - and decl_wrappers.is_return_pointee_value_policy( call_policy ): - self.__return_pointee_value_exists = True - self.__extmodule.add_include( code_repository.call_policies.file_name ) - self.__extmodule.add_system_header( code_repository.call_policies.file_name ) + if self.__custom_call_policies_included: + return + if call_policy.is_predefined(): + return + self.__custom_call_policies_included = True + self.__extmodule.add_include( code_repository.call_policies.file_name ) + self.__extmodule.add_system_header( code_repository.call_policies.file_name ) + def create(self, decl_headers=None): """Create and return the module for the extension. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |