diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2007-08-22 20:32:53 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2007-08-22 20:32:53 +0000 |
commit | fcaa375f81c9b05c40d17095b3264a9e7d97cd86 (patch) | |
tree | c057397d755f18f9980bb86b1303e2e3c7c00e72 /TAO/tao/TAO_Internal.cpp | |
parent | b39078b94bdf3e92b8d4f4220cb510e7c6e46650 (diff) | |
download | ATCD-fcaa375f81c9b05c40d17095b3264a9e7d97cd86.tar.gz |
Wed Aug 22 20:27:35 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
Diffstat (limited to 'TAO/tao/TAO_Internal.cpp')
-rw-r--r-- | TAO/tao/TAO_Internal.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/TAO/tao/TAO_Internal.cpp b/TAO/tao/TAO_Internal.cpp index c617d27024e..a55ed696ab4 100644 --- a/TAO/tao/TAO_Internal.cpp +++ b/TAO/tao/TAO_Internal.cpp @@ -313,6 +313,17 @@ TAO::ORB::open_services (ACE_Service_Gestalt* pcfg, return -1; } + // If the target configuration happens to be the global context, + // add any 'private' arguments here. + if (pcfg == theone && svc_config_argv.length() > 1) + { + CORBA::ULong glen = global_svc_config_argv.length(); + global_svc_config_argv.length(glen + svc_config_argv.length() - 1); + for (CORBA::ULong i = 1; i < svc_config_argv.length(); i++) + global_svc_config_argv[glen++] = svc_config_argv[i]; + svc_config_argv.length(1); + } + int global_svc_config_argc = global_svc_config_argv.length (); int status = open_private_services_i (theone, @@ -381,12 +392,17 @@ TAO::ORB::open_services (ACE_Service_Gestalt* pcfg, return -1; } - int svc_config_argc = svc_config_argv.length (); - int status = - open_private_services_i (pcfg, - svc_config_argc, - svc_config_argv.get_buffer (), - skip_service_config_open); + int status = 0; + // only open the private context if it is not also the global context + if (pcfg != ACE_Service_Config::global()) + { + int svc_config_argc = svc_config_argv.length (); + status = + open_private_services_i (pcfg, + svc_config_argc, + svc_config_argv.get_buffer (), + skip_service_config_open); + } if (status >= 0) { |