]> rtime.felk.cvut.cz Git - frescor/forb.git/commitdiff
forb-idl: Fixed uninitialized sequences in skeletons
authorMichal Sojka <sojkam1@fel.cvut.cz>
Sat, 25 Oct 2008 19:04:55 +0000 (21:04 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Sat, 25 Oct 2008 19:04:55 +0000 (21:04 +0200)
forb-idl/forb-idl-c-common.c
forb-idl/forb-idl-c-skels.c

index 120a3c66570a9e6ad584abcb142d5aeac8429d4e..194f9b8ba4ae8d452c54e24e76f85b591177bf69 100644 (file)
@@ -200,7 +200,6 @@ cc_output_ser_seqence(OIDL_C_Info *ci,
                        "  int i;\n"
                        "  CORBA_boolean ok;\n"
                        "  ok = CORBA_unsigned_long_deserialize(codec, &ptr->_length);\n"
-                       "  ok = ok && (ptr->_length <= ptr->_maximum);\n"
                        "  if (ok) {\n"
                        "    if (CORBA_sequence_get_release(ptr)) CORBA_free(ptr->_buffer);\n"
                        "    ptr->_buffer = %s_allocbuf(ptr->_length);\n"
index d3348dca7e1b47908fe719f95e6cfa26a65c79f9..fd1d5503afef6189f880655b978c895871946f98 100644 (file)
@@ -252,6 +252,7 @@ static void ck_output_op_skel(IDL_tree op, char *intf_id, OIDL_Run_Info *rinfo,
        char *id, *id_plain;
        IDL_tree sub;
        gboolean  has_retval, has_args;
+       const char *const seq_init = " = {0,0,NULL}";
 
        has_retval = IDL_OP_DCL (op).op_type_spec != NULL;
        has_args   = IDL_OP_DCL (op).parameter_dcls != NULL;
@@ -281,12 +282,15 @@ static void ck_output_op_skel(IDL_tree op, char *intf_id, OIDL_Run_Info *rinfo,
 
                fprintf(ci->fh, "    ");
                forb_cbe_write_typespec(ci->fh, IDL_PARAM_DCL(parm).param_type_spec);
-               fprintf(ci->fh, " %s%s;\n", n == 2 ? "*":"", name);
+               fprintf(ci->fh, " %s%s%s;\n",
+                       n == 2 ? "*":"",
+                       name,
+                       (n < 2 && IDL_NODE_TYPE(ts) == IDLN_TYPE_SEQUENCE)?seq_init : "");
        }
        if (has_retval) {
                fprintf (ci->fh, "    ");
                forb_cbe_write_param_typespec (ci->fh, op);
-               fprintf (ci->fh, " _forb_ret;\n");
+               fprintf (ci->fh, " _forb_ret;\n"); /* TODO: seq_init */
        }
 
        /* Deserialize in parameters */