From: Chaskiel M Grundman Date: Wed, 30 May 2001 20:34:17 +0000 (+0000) Subject: make-rxgen-split-rpcs-not-declare-start-parameters-for-functions-for-data-which-is... X-Git-Tag: openafs-stable-1_1_0~148 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=05b43ef0bc3183520b0c03a70db92233741e1e87;p=packages%2Fo%2Fopenafs.git make-rxgen-split-rpcs-not-declare-start-parameters-for-functions-for-data-which-is-copied-out-only-20010530 "fix for rxgen so that split rpc's don't erroneously declare parameters in the "start" function that should only be declared in the "end": example: for the following declaration: Store(IN struct _index_t *descr, IN string group, OUT string spool, OUT afs_uint32 *slot) split; before patch: int StartDMV_Store(z_call, descr, group) register struct rx_call *z_call; struct _index_t * descr; char * group, **spool; { [...] after patch: int StartDMV_Store(z_call, descr, group) register struct rx_call *z_call; struct _index_t * descr; char * group; { [...] " --- diff --git a/src/rxgen/rpc_parse.c b/src/rxgen/rpc_parse.c index a774acd66..0d6a7fc36 100644 --- a/src/rxgen/rpc_parse.c +++ b/src/rxgen/rpc_parse.c @@ -1166,7 +1166,7 @@ int split_flag; } plist->pl.param_flag |= PROCESSED_PARAM; for (plist1 = defp->pc.plists; plist1; plist1 = plist1->next) { - if (streq(plist->pl.param_type, plist1->pl.param_type) && !(plist1->pl.param_flag & PROCESSED_PARAM)) { + if ((plist1->component_kind == DEF_PARAM) && streq(plist->pl.param_type, plist1->pl.param_type) && !(plist1->pl.param_flag & PROCESSED_PARAM)) { char *star=""; char *pntr = index(plist1->pl.param_type, '*'); if (pntr) star = "*"; @@ -1407,7 +1407,7 @@ int *somefrees; } plist->pl.param_flag |= PROCESSED_PARAM; for (plist1 = defp->pc.plists; plist1; plist1 = plist1->next) { - if (streq(plist->pl.param_type, plist1->pl.param_type) && !(plist1->pl.param_flag & PROCESSED_PARAM)) { + if ((plist1->component_kind == DEF_PARAM) && streq(plist->pl.param_type, plist1->pl.param_type) && !(plist1->pl.param_flag & PROCESSED_PARAM)) { if (plist1->pl.param_flag & INDIRECT_PARAM) { f_print(fout, ", %s", plist1->pl.param_name); } else if (index(plist1->pl.param_type, '*') == 0) {