[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