Bug Report no. 44

attlogo6876_dk.gif (2280 bytes)

sideHome.gif (2321 bytes) sideDownload.gif (2450 bytes) sideDocumentation.gif (2512 bytes) sideFAQ.gif (2344 bytes) sidePatch.gif (2543 bytes) sideSearch.gif (2403 bytes)

Reported By

Gary Duzan

Date

8 Feb 1999

Platforms

All

Version

omniORB 2.7.0 and earlier

Description

Defining constructed types in the declaration of an exception field causes wrong code to be generated, and in the case of enums causes omniidl2 to abort. For example, the following IDL compiles okay because the struct is defined outside of the exception:

       struct S { short a; };

       exception X { S anS; };

However, these legal examples fail:

       exception X1 {
         struct S { short a; } anS;
       };

       exception X2 {
         enum Y { Y_1, Y_2} v;
       };

Patch

Apply this patch. This patch is incompatible with patch 41, and includes the changes in that patch. If you have already applied patch 41, then you must undo that patch before applying this one.

The patch changes:

  • src/tool/omniidl2/omniORB2_be/o2be.h
  • src/tool/omniidl2/omniORB2_be/o2be_exception.cc
  • src/tool/omniidl2/omniORB2_be/o2be_interface.cc
  • src/tool/omniidl2/omniORB2_be/o2be_module.cc
 

For comments, feedback, etc, please see the 'Keeping in touch' page.
Copyright 1999 - AT&T Laboratories Cambridge