summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB.cpp
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2006-11-27 12:52:01 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2006-11-27 12:52:01 +0000
commitf3a24222a8de18d607878884fe62943e926ee1fe (patch)
tree35e96fa8bf5775cb103afb253944acdf50430578 /TAO/tao/ORB.cpp
parent21172dafd82f973829caf9ccff13ca272d6b5ed1 (diff)
downloadATCD-f3a24222a8de18d607878884fe62943e926ee1fe.tar.gz
ChangeLogTag: Mon Nov 27 12:50:48 UTC 2006 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'TAO/tao/ORB.cpp')
-rw-r--r--TAO/tao/ORB.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index 559b128b7a6..f3d255f5020 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -1586,11 +1586,20 @@ CORBA::ORB::object_to_string (CORBA::Object_ptr obj
this->check_shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- if (!CORBA::is_nil (obj) && obj->_is_local ())
- ACE_THROW_RETURN (CORBA::MARSHAL (CORBA::OMGVMCID | 4,
- CORBA::COMPLETED_NO),
- 0);
+ if (!CORBA::is_nil (obj))
+ {
+ if (!obj->can_convert_to_ior ())
+ ACE_THROW_RETURN (CORBA::MARSHAL (CORBA::OMGVMCID | 4,
+ CORBA::COMPLETED_NO),
+ 0);
+ // Allow a user to provide custom object stringification
+ char* user_string =
+ obj->convert_to_ior (this->use_omg_ior_format_,
+ ior_prefix);
+ if (user_string != 0)
+ return user_string;
+ }
// Application writer controls what kind of objref strings they get,
// maybe along with other things, by how they initialize the ORB.