_is_equivalent()

Sai-Lai Lo S.Lo@orl.co.uk
Wed, 25 Feb 1998 21:18:21 GMT


>>>>> Fredrik Jonsson writes:

> Q: Should CORBA::Object::_is_equivalent() work according
> to the following in omniORB2.4:

>   Object_impl* oi=new Object_impl();
>   // all boa and nameservice code hidden in the constructor
>   Object_ptr    op=oi->_this();
>   oi-> _this()->_is_equivalent(op); // returns true, good

> It returns true when the Object_ptr is fetched directly, like
> above, fine. But when the Object_ptr is coming in as an argument
> sent from a client process it always returns false.

> xxxxx::xxxxx(Object_ptr& op) {
objectimpl-> _this()->_is_equivalent(op); // always false
> }

> Should it compare equal or not? (assuming that the Object_ptr
> does dereference to the same implementation object)

Strange. If the object reference sent from the client really points to
the same implementation object, _is_equivalent() should returns true even
if the object reference has travelled around the world. Could it be
something else that is causing the symptom you are seeing? I have just verified
that omniORB2 is exhibiting the correct behaviour with a little test
program.

Regards,

Sai-Lai