my experience with ORBit2: orbit-idl



Hi All!

In during ORBit2 orbit-idl using i've done some fixes in ORBit2 tree:

Index: ORBit2/include/orbit/orb-core/corba-environment.h
===================================================================
RCS file: /cvs/gnome/ORBit2/include/orbit/orb-core/corba-environment.h,v
retrieving revision 1.6
diff -u -r1.6 corba-environment.h
--- ORBit2/include/orbit/orb-core/corba-environment.h	2000/11/17 01:15:43	1.6
+++ ORBit2/include/orbit/orb-core/corba-environment.h	2001/01/18 08:10:24
@@ -28,7 +28,7 @@
 				   CORBA_completion_status status,
 				   GIOPRecvBuffer *buf, GIOPSendBuffer *sendbuf);
 void ORBit_handle_exception(GIOPRecvBuffer *buf, CORBA_Environment *ev,
-			    ORBit_exception_demarshal_info *ex_info,
+			    const ORBit_exception_demarshal_info *ex_info,
 			    CORBA_ORB orb);
 GIOPConnection *ORBit_handle_location_forward(GIOPRecvBuffer *buf,
 					      CORBA_Object obj);
Index: ORBit2/src/orb/orb-core/corba-env.c
===================================================================
RCS file: /cvs/gnome/ORBit2/src/orb/orb-core/corba-env.c,v
retrieving revision 1.11
diff -u -r1.11 corba-env.c
--- ORBit2/src/orb/orb-core/corba-env.c	2001/01/09 16:45:46	1.11
+++ ORBit2/src/orb/orb-core/corba-env.c	2001/01/18 08:11:56
@@ -94,7 +95,7 @@
 
 void
 ORBit_handle_exception(GIOPRecvBuffer *rb, CORBA_Environment *ev,
-		       ORBit_exception_demarshal_info *ex_info, CORBA_ORB orb)
+		       const ORBit_exception_demarshal_info *ex_info, CORBA_ORB orb)
 {
   CORBA_SystemException *new;
   CORBA_unsigned_long len, completion_status, reply_status;


--
The "const" things for "const discard" warning avoiding in stubs 
compile time.


Index: ORBit2/src/orb/poa/poa.c
===================================================================
RCS file: /cvs/gnome/ORBit2/src/orb/poa/poa.c,v
retrieving revision 1.17
diff -u -r1.17 poa.c
--- ORBit2/src/orb/poa/poa.c	2001/01/10 17:50:49	1.17
+++ ORBit2/src/orb/poa/poa.c	2001/01/18 08:12:54
@@ -1895,9 +1895,8 @@
   ++(pobj->use_cnt);
   invoke_rec.pobj = pobj;
   invoke_rec.doUnuse = 0;
-#if 0
-  invoke_rec.oid = &oid;
-#endif
+  invoke_rec.object_id = &oid;
+
   invoke_rec.prev = poa->orb->poa_current_invocations;
   poa->orb->poa_current_invocations = &invoke_rec;
 
--
After this change I can use PortableServer_Current_get_object_id without
any problems.

Index: ORBit2/src/idl-compiler/orbit-idl-c-demarshal.c
===================================================================
RCS file: /cvs/gnome/ORBit2/src/idl-compiler/orbit-idl-c-demarshal.c,v
retrieving revision 1.43
diff -u -r1.43 orbit-idl-c-demarshal.c
--- ORBit2/src/idl-compiler/orbit-idl-c-demarshal.c	2000/11/17 01:15:44	1.43
+++ ORBit2/src/idl-compiler/orbit-idl-c-demarshal.c	2001/01/18 08:10:58
@@ -169,14 +169,14 @@
   if(!cmi->curptr_in_local && node->flags & MN_NEED_CURPTR_LOCAL)
     c_demarshal_validate_curptr(node, cmi); /* Help out c_demarshal_generate_check, which will prefer to use the local var */
 
-  c_demarshal_generate_check(node->pre, cmi);
-
   /* This needs to bae done _after_ generate_check because we don't
      want to free the data for a parameter if it cannot possibly be
      demarshalled - the marshal_error_exit label points to stuff that
      knows how to free the demarshalled version of that parameter */
   if(node->marshal_error_exit)
     cmi->marshal_error_exit = node->marshal_error_exit;
+
+  c_demarshal_generate_check(node->pre, cmi);
 
   if(node->flags & MN_TOPLEVEL)
     c_demarshal_generate_alloc(node, cmi);
Index: ORBit2/src/idl-compiler/orbit-idl-c-stubs.c
===================================================================
RCS file: /cvs/gnome/ORBit2/src/idl-compiler/orbit-idl-c-stubs.c,v
retrieving revision 1.45
diff -u -r1.45 orbit-idl-c-stubs.c
--- ORBit2/src/idl-compiler/orbit-idl-c-stubs.c	2000/11/17 01:15:44	1.45
+++ ORBit2/src/idl-compiler/orbit-idl-c-stubs.c	2001/01/18 08:11:29
@@ -263,8 +263,7 @@
 	cbe_op_retval_free(IDL_OP_DCL(tree).op_type_spec, ci);
       }
 
-    if(IDL_OP_DCL(tree).parameter_dcls)
-      fprintf(ci->fh, "_ORBIT_demarshal_error:\n");
+    fprintf(ci->fh, "_ORBIT_demarshal_error:\n");
     fprintf(ci->fh, "_ORBIT_system_exception_ex = ex_CORBA_MARSHAL;\n");
   }
   fprintf(ci->fh, "_ORBIT_system_exception:\n");

--
I posted this piece of code only to show the problem which still has
in stubs compile time. This is not fix. The marshal_error_exit label 
things still not working correctly...
   
-- 
Best regards,
Dmitry




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