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