[omniORB] Sequences of strings

Thomas Braun thomas.braun at byte-physics.de
Thu Sep 4 15:30:30 UTC 2025


Hi there,

I've again found some code in tango which does something I don't
understand.

Basically it boils down to having a definition like

typedef sequence<string> DevVarStringArray;

in the IDL file.

And then a C++ function on the server side which has the following
signature:

void DataBase::dostuff(const Tango::DevVarStringArray *argin)

Now I already found out from reading documentation (omniORB, Advanced
CORBA Programming with C++ and helpful colleagues) that argin can never
be a nullptr.

But what about the elements of argin? The code does something like

const char *wildcard = (*argin)[0];
if(wildcard == nullptr)
{
...
}

but I don't understand how the element of the string sequence can be a
nullptr?

If I really try hard to pass in a nullptr as element I get

omniORB: (0) 2025-09-04 16:39:14.621026: Application check failed. This
indicates a bug in the application
 using omniORB.  See the comment in the source code for more info.
 file: ../../../../include/omniORB4/cdrStream.h
 line: 454
 info: s

which for me strongly hints in the direction that the contained
elements in a sequence of strings are never a nullptr.

In case this is true, is that an omniORB speciality or mandated by the
CORBA standard?

Thanks,
Thomas







More information about the omniORB-list mailing list