*** omniORB_2.6.0/src/tool/omniidl2/omniORB2_be/o2be_union.cc Wed Oct 14 15:13:29 1998 --- omniORB_2.6.0_patched/src/tool/omniidl2/omniORB2_be/o2be_union.cc Fri Oct 16 12:26:24 1998 *************** *** 28,33 **** --- 28,38 ----
/* $Log: patch34.txt,v $ Revision 1.1 1998/10/20 18:15:12 sll Initial revision # Revision 1.1 1998/10/16 15:05:23 sll # Initial revision # + Revision 1.18 1998/10/16 11:26:21 sll + Previously, if a fixed size union branch is followed by an array of union + branch, the data member of the fixed size branch is not defined in the + generated stub. This is now fixed. + Revision 1.17 1998/10/14 14:13:28 sll Do not put fixed-size struct inside the anonymous union data member in a union. *************** *** 526,532 **** ntype != o2be_operation::tAny && ntype != o2be_operation::tTypeCode) { - has_fix_member = I_TRUE; if (ntype == o2be_operation::tArrayFixed) { // Array of fixed size union is a special case, the data --- 531,536 ---- *************** *** 543,554 **** while (dd->node_type() == AST_Decl::NT_typedef) { dd = o2be_typedef::narrow_from_decl(dd)->base_type(); } ! if (dd->node_type() == AST_Decl::NT_union) { ! // The element is a union. Do not define the data member // in the anonymous union. - has_fix_member = I_FALSE; } } }
switch (ntype) --- 547,563 ---- while (dd->node_type() == AST_Decl::NT_typedef) { dd = o2be_typedef::narrow_from_decl(dd)->base_type(); } ! if (dd->node_type() == AST_Decl::NT_union || ! dd->node_type() == AST_Decl::NT_struct) { ! // The element is a union or a struct. ! // Do not define the data member // in the anonymous union. } + else + has_fix_member = I_TRUE; } + else + has_fix_member = I_TRUE; }