[omniORB] omniIDL: Inconsistent C++ interface from cross-module
typedefs
Andrew Miller
ak.miller at auckland.ac.nz
Tue Aug 2 19:32:45 BST 2005
Hi all,
omniIDL appears to add an extra * to the type when you use a type from another
module which is already a pointer type.
Example: In the module dom:
typedef wstring DOMString;
which results in:
typedef CORBA::WChar* DOMString;
In an interface within the dom module, the following attribute:
readonly attribute DOMString nodeName;
Correctly results in:
CORBA::WChar* nodeName();
However, if you use a similar attribute in an interface in another module, for
example:
readonly attribute dom::DOMString referrer;
you get:
dom::DOMString* referrer();
However, since dom::DOMString is CORBA::WChar*, referrer now returns a pointer
to a pointer to a CORBA::WChar, which (at least by my reading) is not correct
according to the CORBA C++ mapping.
Best regards,
Andrew Miller
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
More information about the omniORB-list
mailing list