diff options
author | vzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-02-23 09:57:24 +0000 |
---|---|---|
committer | vzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-02-23 09:57:24 +0000 |
commit | 18bebcede370ca7a3f4ff81d165120a4ec458911 (patch) | |
tree | 82b5c7dca2e4e78429408c7b9e6cf4353ac6e1ab /TAO/tao/ORB.cpp | |
parent | 5cbc08e3689e38d1a9a8af2e2dbd0404ebe49801 (diff) | |
download | ATCD-18bebcede370ca7a3f4ff81d165120a4ec458911.tar.gz |
Tue Feb 23 09:46:57 UTC 2010 Vladimir Zykov <vladimir.zykov@prismtech.com>
* tests/Bug_3827_Regression/test.cpp:
* tests/Bug_3827_Regression/Message.idl:
* tests/Bug_3827_Regression/run_test.pl:
* tests/Bug_3827_Regression/README:
* tests/Bug_3827_Regression/Bug_3827_Regression.mpc:
* tao/ORB_Core.cpp:
* tao/ORB.cpp:
* tao/ORB_Core.h:
Added a test for bug#3827 and fixed it. Now access or changes to
valuetype_adapter_ in ORB_Core is protected by a lock.
* tests/Bug_3826_Regression/orb_svc.conf:
* tests/Bug_3826_Regression/server.cpp:
* tests/Bug_3826_Regression/README:
* tests/Bug_3826_Regression/Bug_3826_Regression.mpc:
* tests/Bug_3826_Regression/run_test.pl:
* tao/TAO_Internal.cpp:
Added a test for bug#3826 and fixed it. If the first ORB in created
with -ORBGestalt LOCAL it will have a local configuration and this
configuration will not leak into any ORBs created afterwards.
* bin/tao_orb_tests.lst:
Scheduled tests for bug#3826 and bug#3827 to run in the nightly
builds.
Diffstat (limited to 'TAO/tao/ORB.cpp')
-rw-r--r-- | TAO/tao/ORB.cpp | 37 |
1 files changed, 6 insertions, 31 deletions
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp index 7dca097ea4e..3f9023adf5a 100644 --- a/TAO/tao/ORB.cpp +++ b/TAO/tao/ORB.cpp @@ -1722,25 +1722,9 @@ CORBA::ValueFactory CORBA::ORB::register_value_factory (const char *repository_id, CORBA::ValueFactory factory) { - TAO_Valuetype_Adapter *vta = this->orb_core ()->valuetype_adapter (); - - if (vta) - { - int const result = vta->vf_map_rebind (repository_id, factory); - - if (result == 0) // No previous factory found - { - return 0; - } - - if (result == -1) - { - // Error on bind. - throw ::CORBA::MARSHAL (); - } - } + this->check_shutdown (); - return factory; // previous factory was found + return this->orb_core_->register_value_factory (repository_id, factory); } #endif @@ -1748,13 +1732,9 @@ CORBA::ORB::register_value_factory (const char *repository_id, void CORBA::ORB::unregister_value_factory (const char *repository_id) { - TAO_Valuetype_Adapter *vta = this->orb_core ()->valuetype_adapter (); + this->check_shutdown (); - if (vta) - { - // Dont care whther it was successful or not! - (void) vta->vf_map_unbind (repository_id); - } + this->orb_core_->unregister_value_factory (repository_id); } #endif @@ -1762,14 +1742,9 @@ CORBA::ORB::unregister_value_factory (const char *repository_id) CORBA::ValueFactory CORBA::ORB::lookup_value_factory (const char *repository_id) { - TAO_Valuetype_Adapter *vta = this->orb_core ()->valuetype_adapter (); - - if (vta) - { - return vta->vf_map_find (repository_id); - } + this->check_shutdown (); - return 0; + return this->orb_core_->lookup_value_factory (repository_id); } #endif |