*** 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;
}