my experience with ORBit2: orbit-idl
- From: Dmitry Yusupov <dmy7 yahoo com>
- To: orbit-list gnome org
- Subject: my experience with ORBit2: orbit-idl
- Date: Fri, 19 Jan 2001 12:11:00 +0300
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]