[PATCH] Fix c_align for arrays in orbit-imodule idl -> iinterface code



Hi,

there's a bug in ORBit-imodule where some c_aligns are not set in the
IDL -> IModule code.

The ARRAY case creates multiple nested types at once, but the code below
expects only one new typecode to be created (where the new c_align gets
calculated), so just copy the c_align from the children when a new array
TypeCode is created.


--- ORBit2-2.10.1.orig/src/services/imodule/orbit-imodule-utils.c	2002-12-28 22:32:00.000000000 +0100
+++ ORBit2-2.10.1/src/services/imodule/orbit-imodule-utils.c	2004-05-22 02:22:37.196835168 +0200
@@ -670,6 +670,7 @@
 		retval = CORBA_ORB_create_array_tc (NULL,
 				IDL_INTEGER (IDL_LIST (sizer).data).value,
 				subtc, &env);
+		retval->c_align = subtc->c_align;
 		CORBA_Object_release ((CORBA_Object) subtc, NULL);
 
 		for (sizer = IDL_LIST (sizer).prev; sizer; sizer = IDL_LIST (sizer).prev) {
@@ -677,6 +678,7 @@
 			retval = CORBA_ORB_create_array_tc (NULL,
 					IDL_INTEGER (IDL_LIST (sizer).data).value,
 					subtc, &env);
+			retval->c_align = subtc->c_align;
 			CORBA_Object_release ((CORBA_Object) subtc, NULL);
 		}
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]