[omniORB] Bug: Wrong prototype for out objrefs in implementation
skeletons
Duncan Grisby
duncan at grisby.org
Mon Jul 25 19:02:29 BST 2005
On Monday 25 July, Andrew Miller wrote:
> I have found a bug in omniORB4:
>
> For following operation
> Test2 performSomeOperation(in Test foo1, inout Test2 foo2, out Test2 foo3,
> in string str) raises(x);
>
> the "out Test2" argument should, in the servant skeleton class, be of type
> equivalent to Foo::Test2_ptr&. However, instead it is of type
> _CORBA_ObjRef_OUT_arg<Foo::_objref_Test2, Foo::Test2_Helper>
>
> See the table on page 1-107 of the CORBA C++ mapping version 1.1.
My reading of the spec is that omniORB is correct. Section 1.22.1,
preceding the table you mention says:
...it is expected that operation signatures for both clients and
servers will be written in terms of the parameter passing modes shown
in "Basic Argument and Result Passing", _with the exception that the
T_out types will be used as the actual parameter types for all out
parameters_.
The bit I've marked with underscores is in italics in the spec.
Test2_out is a typedef to the template you show, so I think omniORB is
correct.
Cheers,
Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
More information about the omniORB-list
mailing list