]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - forb-idl/forb-idl-c-skels.c
Added error checking of deserialization in skeletons
[frescor/forb.git] / forb-idl / forb-idl-c-skels.c
index 12bd67471046f0e9e5d886c5fb79b802ecaa5aad..1d353381e186063ebbb45c5c500effff1a711774 100644 (file)
@@ -316,10 +316,10 @@ static void ck_output_op_skel(IDL_tree op, char *intf_id, OIDL_Run_Info *rinfo,
                role = oidl_attr_to_paramrole(IDL_PARAM_DCL(parm).attr);
                if (role == DATA_IN || role == DATA_INOUT) {
                        char *name = IDL_IDENT(IDL_PARAM_DCL(parm).simple_declarator).str;
-                       fprintf(ci->fh, /* "  r = " */ "    ");
+                       fprintf(ci->fh, "    if (!");
                        forb_cbe_write_typespec(ci->fh, IDL_PARAM_DCL(parm).param_type_spec);
-                       fprintf(ci->fh, "_deserialize(cin, &%s);\n", name);
-/*                     fprintf(ci->fh, "    if (!r) { ev->major = FORB_EX_IMP_LIMIT; goto exception; }\n"); */
+                       fprintf(ci->fh, "_deserialize(cin, &%s)) {\n", name);
+                       fprintf(ci->fh, "      env->major = FORB_EX_MARSHAL; goto exception;\n    }\n");
                }
        }