Skip to content

Any TypeCode::equivalent() is slow on sequences because of c++ exceptions are used #903

@xor2003

Description

@xor2003

Version

TAO 2.0a or 2.2a

Host machine and operating system

RHEL 6

Target machine and operating system (if different from host)

Compiler name and version (including patch level)

gcc 4.4.7

The $ACE_ROOT/ace/config.h file

If you use a link to a platform-specific file, simply state which one

The $ACE_ROOT/include/makeinclude/platform_macros.GNU file

if you use a link to a platform-specific file, simply state which one (unless this isn't used in this case, e.g., with Microsoft Visual C++)

Contents of $ACE_ROOT/bin/MakeProjectCreator/config/default.features

Used by MPC when you generate your own makefiles

AREA/CLASS/EXAMPLE AFFECTED:

TAO\tao\AnyTypeCode\TypeCode.cpp

The problem effects:

Affect only performance

Synopsis

Durying Any extraction from tc_sequnce (globaldefs::NVSList_T) the c++ exceptions are used which is slow.

Description

CORBA::Any value;
globaldefs::NamingAttributes_T	 		*objectName;
    value >>= objectName;

Calls:

CORBA::TypeCode::equivalent (TypeCode_ptr tc) const
{ 
  try {
      char const * const this_id = unaliased_this->id ();
      char const * const tc_id = unaliased_tc->id ();
    }
  catch (const ::CORBA::TypeCode::BadKind&)

id()/id_i() is not overriden for some reason for tc_sequence (globaldefs::NVSList_T) type so the exception ::CORBA::TypeCode::BadKind is used:

CORBA::TypeCode::id_i (void) const
{ throw ::CORBA::TypeCode::BadKind (); }

Can we check what function was not overriden without exceptions?

Repeat by

TODO

Sample fix/ workaround

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions