idl-compiler creates 0xdeadbeaf generating skels in orbit-stable-0-5



Hi guys,

attached is a diff between the oaf-skel.c from some older
ORBit version (0.5.6) and the latest one from orbit-stable-0-5
from CVS:

--- oaf-skels.c.old	Wed Mar 14 21:49:06 2001
+++ oaf-skels.c	Wed Mar 14 21:49:31 2001
@@ -106,6 +106,8 @@
 	      (*((guint32 *) & (result.res._u.res_shlib._length))) =
 		 GUINT32_SWAP_LE_BE(*((guint32 *) _ORBIT_curptr));
 	      _ORBIT_curptr += 4;
+	      result.res._u.res_shlib._maximum =
+		 result.res._u.res_shlib._length;
 	      result.res._u.res_shlib._buffer =
 		 CORBA_sequence_CORBA_string_allocbuf(result.res._u.res_shlib.
 						      _length);
@@ -152,6 +154,8 @@
 	      result.res._u.res_shlib._length =
 		 *((CORBA_unsigned_long *) _ORBIT_curptr);
 	      _ORBIT_curptr += 4;
+	      result.res._u.res_shlib._maximum =
+		 result.res._u.res_shlib._length;
 	      result.res._u.res_shlib._buffer =
 		 CORBA_sequence_CORBA_string_allocbuf(result.res._u.res_shlib.
 						      _length);
@@ -177,7 +181,7 @@
       }
    }
    _impl_report_activation_succeeded(_ORBIT_servant, &(result), ev);
-   OAF_ActivationResult__free(&result, NULL, CORBA_FALSE);
+   OAF_ActivationResult__free(&result, NULL, CORBA_TRUE);
 }
 
 void
@@ -1227,7 +1231,7 @@
       }
       if (ev->_major == CORBA_NO_EXCEPTION)
 	 CORBA_Object_release(_ORBIT_retval, ev);
-      CORBA_Object_release(ac, ev);
+      CORBA_Object_release((CORBA_Object) ac, ev);
       ORBit_Context_server_free(&_ctx);
    }
 }
@@ -1347,7 +1351,7 @@
 	 giop_send_buffer_write(_ORBIT_send_buffer);
 	 giop_send_buffer_unuse(_ORBIT_send_buffer);
       }
-      CORBA_Object_release(obj, ev);
+      CORBA_Object_release((CORBA_Object) obj, ev);
    }
 }
 void
@@ -1422,7 +1426,7 @@
 	 giop_send_buffer_write(_ORBIT_send_buffer);
 	 giop_send_buffer_unuse(_ORBIT_send_buffer);
       }
-      CORBA_Object_release(obj, ev);
+      CORBA_Object_release((CORBA_Object) obj, ev);
    }
 }
 void
@@ -1583,7 +1587,7 @@
 	 giop_send_buffer_write(_ORBIT_send_buffer);
 	 giop_send_buffer_unuse(_ORBIT_send_buffer);
       }
-      CORBA_Object_release(dir, ev);
+      CORBA_Object_release((CORBA_Object) dir, ev);
    }
 }
 void
@@ -1647,7 +1651,7 @@
 	 giop_send_buffer_write(_ORBIT_send_buffer);
 	 giop_send_buffer_unuse(_ORBIT_send_buffer);
       }
-      CORBA_Object_release(dir, ev);
+      CORBA_Object_release((CORBA_Object) dir, ev);
    }
 }
 void
@@ -2017,7 +2021,7 @@
    }
    _impl_activate_async(_ORBIT_servant, requirements, &(selection_order),
 			flags, callback_object, &_ctx, ev);
-   CORBA_Object_release(callback_object, ev);
+   CORBA_Object_release((CORBA_Object) callback_object, ev);
    ORBit_Context_server_free(&_ctx);
 }
 
@@ -3543,7 +3547,7 @@
    }
    _impl_activate_from_id_async(_ORBIT_servant, aid, flags, callback_object,
 				&_ctx, ev);
-   CORBA_Object_release(callback_object, ev);
+   CORBA_Object_release((CORBA_Object) callback_object, ev);
    ORBit_Context_server_free(&_ctx);
 }
 static ORBitSkeleton
The IDL is from oaf-stable-0-6:

Attachment: oaf.idl
Description: Binary data

Attachment: oaf-factory.idl
Description: Binary data

My problem is the following:

    _impl_report_activation_succeeded(_ORBIT_servant, &(result), ev);
-   OAF_ActivationResult__free(&result, NULL, CORBA_FALSE);
+   OAF_ActivationResult__free(&result, NULL, CORBA_TRUE);

With the newer version I get a 0xdeadbeef :-(

-- 
Martin Baulig
martin gnome org (private)
baulig suse de (work)


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