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