[omniORB] Two bugs in omniidl

Gellule Xg gellule.xg at free.fr
Wed Dec 10 08:56:16 GMT 2008


 >> The following small idl files reveals two bugs in omniidl 4.1.3 cxx 
backend
 >
 > Thanks for the bug report. I've fixed both. For the double constant bug
 > your proposed fix works. For the struct scope issue, the problem is
 > actually that the type lookup was failing to enter the struct scope so
 > it didn't notice the clash. Properly entering the scope means the type
 > is properly fully qualified in case of clashes.

Isn't the cxx backend having the type of problems with the following 
IDL, where myM::myS and myM::myI::myS clash?

module myM {
    struct myS {
       boolean myB;
    };
    interface myI {
       void myS();
       void myC(in myM::myS myP};
    };
};

I notice issues in the hh file:

void myC(const myS& myP);
==> void myC(const *myM::*myS& myP);

virtual void myC(const myS& myP) = 0;
==> virtual void myC(const *myM::*myS& myP) = 0;

and in the SK.cpp file:

void myM::_objref_myI::myC(const myS& myP)
==> void myM::_objref_myI::myC(const *myM::*myS& myP)

_call_desc.arg_0 = &(myS&) myP;
==> _call_desc.arg_0 = &(*myM::*myS&) myP;


Thanks,





More information about the omniORB-list mailing list