[omniORB] [OMNIORB] Bug with lifecycle + multilevel inheritance?

b.keeping@ic.ac.uk b.keeping@ic.ac.uk
Wed, 8 Jul 98 00:21:34 BST


I believe I've found a bug in combining lifecycle support with
multilevel inheritance. I am working with 2.5.0 on Solaris.

Consider the following change to echo.idl:
----------------------------------------------------------------------
#ifndef __ECHO_IDL__
#define __ECHO_IDL__

interface Echo {
  string echoString(in string mesg);
};
interface Echo2:Echo {
  string echo2String(in string mesg);
};
interface Echo3:Echo2 {
  string echo3String(in string mesg);
};

#endif 
----------------------------------------------------------------------
Note I am using 2 levels of inheritance, which the IDL spec tells me
is allowed.

No problem building the echo examples with just this change - but if
I add 
OMNIORB2_IDL += $(OMNIORB2_IDL_LC_FLAGS)
to my dir.mk file (i.e. add a -l flag to the omniidl2 command) the
following happens:

CC -c -O2 -fsimple  -D__OMNIORB2__ -I/home/ps/sunfs1/d3/umeca60/corex/echo/stub -DUsePthread -D_REENTRANT -mt -I.  -I/usr/local/omniORB/include -D__sparc__ -D__sunos__ -D__OSVERSION__=5 -o /home/ps/sunfs1/d3/umeca60/corex/echo/stub/echoSK.o /home/ps/sunfs1/d3/umeca60/corex/echo/stub/echoSK.cc
"/home/ps/sunfs1/d3/umeca60/corex/echo/stub/echoSK.cc", line 2212: Error: _wrap_proxy_Echo3::_wrap_proxy_Echo3(_lc_proxy_Echo3*, Rope*, unsigned char*, unsigned, _CORBA_Unbounded_Sequence<IOP::TaggedProfile>*, unsigned char) can't find _wrap_proxy_Echo::_wrap_proxy_Echo() to initialize base class.
"/home/ps/sunfs1/d3/umeca60/corex/echo/stub/echoSK.cc", line 2220: Error: _wrap_proxy_Echo3::_wrap_proxy_Echo3(_lc_proxy_Echo3*) can't find _wrap_proxy_Echo::_wrap_proxy_Echo() to initialize base class.
2 Error(s) detected.

I'm a bit lost here, except to note that there is a constructor
_wrap_proxy_Echo::_wrap_proxy_Echo(...) defined in echo.hh, but it
takes lots of arguments and here the compiler is looking for one with
no arguments (I think?).

Over to you!

Ben Keeping
Imperial College
London