From 1fe9b54b868cdb7ae04f6e9d8dfc9519dbb70e86 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sat, 15 Oct 2005 02:21:21 +0000 Subject: [PATCH] STABLE140-rxgen-multi-prototypes-20051014 FIXES 22349 generate prototypes for split stuff when the stub is multi (cherry picked from commit a9fd6619a4e74930ae27744f95f04fefabaa6c9f) --- src/rxgen/rpc_hout.c | 3 ++- src/rxgen/rpc_parse.c | 3 +++ src/rxgen/rpc_parse.h | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/rxgen/rpc_hout.c b/src/rxgen/rpc_hout.c index 34618d52f..a0abfa2d5 100644 --- a/src/rxgen/rpc_hout.c +++ b/src/rxgen/rpc_hout.c @@ -259,8 +259,9 @@ static void psprocdef(definition * defp) { int split_flag = defp->pc.split_flag; + int multi_flag = defp->pc.multi_flag; - if (split_flag) { + if (split_flag || multi_flag) { psproc1(defp, 1, "int", "Start", (1 << DEF_INPARAM) | (1 << DEF_INOUTPARAM)); psproc1(defp, 1, "int", "End", diff --git a/src/rxgen/rpc_parse.c b/src/rxgen/rpc_parse.c index 63a47fa8b..74b81cc53 100644 --- a/src/rxgen/rpc_parse.c +++ b/src/rxgen/rpc_parse.c @@ -775,7 +775,10 @@ check_proc(definition * defp, token * tokp, int noname) scan4(TOK_SPLIT, TOK_MULTI, TOK_EQUAL, TOK_SEMICOLON, &tok); if (tok.kind == TOK_MULTI) { proc_multi = 1; + defp->pc.multi_flag = 1; scan2(TOK_EQUAL, TOK_SEMICOLON, &tok); + } else { + defp->pc.multi_flag = 0; } if (tok.kind == TOK_SPLIT) { proc_split = 1; diff --git a/src/rxgen/rpc_parse.h b/src/rxgen/rpc_parse.h index 84c2adfa6..81977e9a3 100644 --- a/src/rxgen/rpc_parse.h +++ b/src/rxgen/rpc_parse.h @@ -188,6 +188,7 @@ struct procedure_def { #define INOUT 2 short paramtypes[3]; char split_flag; + char multi_flag; relation rel; proc1_list *plists; }; -- 2.39.5