[BACK]Return to rpc_cout.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / rpcgen

Diff for /src/usr.bin/rpcgen/rpc_cout.c between version 1.6 and 1.7

version 1.6, 2001/07/18 22:26:00 version 1.7, 2001/11/07 18:44:28
Line 85 
Line 85 
   
                 if (strcmp(def->def.ty.old_type, def->def_name) == 0)                  if (strcmp(def->def.ty.old_type, def->def_name) == 0)
                         return;                          return;
         };          }
   
         print_header(def);          print_header(def);
         switch (def->def_kind) {          switch (def->def_kind) {
Line 143 
Line 143 
                 f_print(fout, "%s ", procname);                  f_print(fout, "%s ", procname);
                 if (pointerp)                  if (pointerp)
                         f_print(fout, "*");                          f_print(fout, "*");
                 f_print(fout, "objp)\n{\n\n");                  f_print(fout, "objp)\n{\n");
         } else {          } else {
                 f_print(fout, "xdr_%s(xdrs, objp)\n", procname);                  f_print(fout, "xdr_%s(xdrs, objp)\n", procname);
                 f_print(fout, "\tXDR *xdrs;\n");                  f_print(fout, "\tXDR *xdrs;\n");
                 f_print(fout, "\t%s ", procname);                  f_print(fout, "\t%s ", procname);
                 if (pointerp)                  if (pointerp)
                         f_print(fout, "*");                          f_print(fout, "*");
                 f_print(fout, "objp;\n{\n\n");                  f_print(fout, "objp;\n{\n");
         }          }
 }  }
   
Line 174 
Line 174 
         if (doinline == 0)          if (doinline == 0)
                 return;                  return;
         /* May cause lint to complain. but  ... */          /* May cause lint to complain. but  ... */
         f_print(fout, "\t register int32_t *buf;\n\n");          f_print(fout, "\tint32_t *buf;\n\n");
   
 }  }
   
Line 199 
Line 199 
         char   *name;          char   *name;
 {  {
         tabify(fout, indent);          tabify(fout, indent);
         f_print(fout, " if (!xdr_%s(xdrs", name);          f_print(fout, "if (!xdr_%s(xdrs", name);
 }  }
   
 static  static
Line 231 
Line 231 
 {  {
         f_print(fout, ")) {\n");          f_print(fout, ")) {\n");
         tabify(fout, indent);          tabify(fout, indent);
         f_print(fout, "\t return (FALSE);\n");          f_print(fout, "\treturn (FALSE);\n");
         tabify(fout, indent);          tabify(fout, indent);
         f_print(fout, " }\n");          f_print(fout, "}\n");
 }  }
   
 static  static
Line 427 
Line 427 
         }          }
         for (dl = def->def.st.decls; dl != NULL; dl = dl->next)          for (dl = def->def.st.decls; dl != NULL; dl = dl->next)
                 if (dl->decl.rel == REL_VECTOR) {                  if (dl->decl.rel == REL_VECTOR) {
                         f_print(fout, "\t int i;\n");                          f_print(fout, "\tint i;\n");
                         break;                          break;
                 }                  }
         size = 0;          size = 0;
Line 442 
Line 442 
                         else {                          else {
                                 can_inline = 1;                                  can_inline = 1;
                                 break;  /* can be inlined */                                  break;  /* can be inlined */
                         };                          }
                 } else {                  } else {
                         if (size >= doinline) {                          if (size >= doinline) {
                                 can_inline = 1;                                  can_inline = 1;
Line 457 
Line 457 
                 for (dl = def->def.st.decls; dl != NULL; dl = dl->next)                  for (dl = def->def.st.decls; dl != NULL; dl = dl->next)
                         print_stat(1, &dl->decl);                          print_stat(1, &dl->decl);
                 return;                  return;
         };          }
   
   
   
Line 466 
Line 466 
         for (j = 0; j < 2; j++) {          for (j = 0; j < 2; j++) {
   
                 if (flag == PUT)                  if (flag == PUT)
                         f_print(fout, "\n\t if (xdrs->x_op == XDR_ENCODE) {\n");                          f_print(fout, "\n\tif (xdrs->x_op == XDR_ENCODE) {\n");
                 else                  else
                         f_print(fout, "\n \t return (TRUE);\n\t} else if (xdrs->x_op == XDR_DECODE) {\n");                          f_print(fout, "\t\treturn (TRUE);\n\t} else if (xdrs->x_op == XDR_DECODE) {\n");
   
   
                 i = 0;                  i = 0;
Line 504 
Line 504 
                                                 sizestr = (char *)realloc(sizestr, strlen(sizestr) + strlen(ptemp) + 1);                                                  sizestr = (char *)realloc(sizestr, strlen(sizestr) + strlen(ptemp) + 1);
                                                 if (sizestr == NULL) {                                                  if (sizestr == NULL) {
   
                                                         f_print(stderr, "Fatal error : no memory \n");                                                          f_print(stderr, "Fatal error : no memory\n");
                                                         crash();                                                          crash();
                                                 };                                                  }
                                                 sizestr = strcat(sizestr, ptemp);       /* build up length of                                                  sizestr = strcat(sizestr, ptemp);       /* build up length of
                                                                                          * array */                                                                                           * array */
   
Line 519 
Line 519 
                                                 /* don't expand into inline                                                  /* don't expand into inline
                                                  * code if size < doinline */                                                   * code if size < doinline */
                                                 while (cur != dl) {                                                  while (cur != dl) {
                                                         print_stat(1, &cur->decl);                                                          print_stat(2, &cur->decl);
                                                         cur = cur->next;                                                          cur = cur->next;
                                                 }                                                  }
                                         } else {                                          } else {
Line 529 
Line 529 
                                                 /* were already looking at a                                                  /* were already looking at a
                                                  * xdr_inlineable structure */                                                   * xdr_inlineable structure */
                                                 if (sizestr == NULL)                                                  if (sizestr == NULL)
                                                         f_print(fout, "\t buf = (int32_t *)XDR_INLINE(xdrs,%d * BYTES_PER_XDR_UNIT);",                                                          f_print(fout, "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, %d * BYTES_PER_XDR_UNIT);",
                                                             size);                                                              size);
                                                 else                                                  else
                                                         if (size == 0)                                                          if (size == 0)
                                                                 f_print(fout,                                                                  f_print(fout,
                                                                     "\t buf = (int32_t *)XDR_INLINE(xdrs,%s * BYTES_PER_XDR_UNIT);",                                                                      "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, %s * BYTES_PER_XDR_UNIT);",
                                                                     sizestr);                                                                      sizestr);
                                                         else                                                          else
                                                                 f_print(fout,                                                                  f_print(fout,
                                                                     "\t buf = (int32_t *)XDR_INLINE(xdrs,(%d + %s)* BYTES_PER_XDR_UNIT);",                                                                      "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, (%d + %s)* BYTES_PER_XDR_UNIT);",
                                                                     size, sizestr);                                                                      size, sizestr);
   
                                                 f_print(fout, "\n\t   if (buf == NULL) {\n");                                                  f_print(fout, "\n\t\tif (buf == NULL) {\n");
   
                                                 psav = cur;                                                  psav = cur;
                                                 while (cur != dl) {                                                  while (cur != dl) {
                                                         print_stat(2, &cur->decl);                                                          print_stat(3, &cur->decl);
                                                         cur = cur->next;                                                          cur = cur->next;
                                                 }                                                  }
   
                                                 f_print(fout, "\n\t  }\n\t  else {\n");                                                  f_print(fout, "\t\t} else {\n");
   
                                                 cur = psav;                                                  cur = psav;
                                                 while (cur != dl) {                                                  while (cur != dl) {
Line 557 
Line 557 
                                                         cur = cur->next;                                                          cur = cur->next;
                                                 }                                                  }
   
                                                 f_print(fout, "\t  }\n");                                                  f_print(fout, "\t\t}\n");
                                         }                                          }
                                 size = 0;                                  size = 0;
                                 i = 0;                                  i = 0;
                                 sizestr = NULL;                                  sizestr = NULL;
                                 print_stat(1, &dl->decl);                                  print_stat(2, &dl->decl);
                         }                          }
   
                 }                  }
Line 571 
Line 571 
                                 /* don't expand into inline code if size <                                  /* don't expand into inline code if size <
                                  * doinline */                                   * doinline */
                                 while (cur != dl) {                                  while (cur != dl) {
                                         print_stat(1, &cur->decl);                                          print_stat(2, &cur->decl);
                                         cur = cur->next;                                          cur = cur->next;
                                 }                                  }
                         } else {                          } else {
Line 579 
Line 579 
                                 /* were already looking at a xdr_inlineable                                  /* were already looking at a xdr_inlineable
                                  * structure */                                   * structure */
                                 if (sizestr == NULL)                                  if (sizestr == NULL)
                                         f_print(fout, "\t\tbuf = (int32_t *)XDR_INLINE(xdrs,%d * BYTES_PER_XDR_UNIT);",                                          f_print(fout, "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, %d * BYTES_PER_XDR_UNIT);",
                                             size);                                              size);
                                 else                                  else
                                         if (size == 0)                                          if (size == 0)
                                                 f_print(fout,                                                  f_print(fout,
                                                     "\t\tbuf = (int32_t *)XDR_INLINE(xdrs,%s * BYTES_PER_XDR_UNIT);",                                                      "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, %s * BYTES_PER_XDR_UNIT);",
                                                     sizestr);                                                      sizestr);
                                         else                                          else
                                                 f_print(fout,                                                  f_print(fout,
                                                     "\t\tbuf = (int32_t *)XDR_INLINE(xdrs,(%d + %s)* BYTES_PER_XDR_UNIT);",                                                      "\t\tbuf = (int32_t *)XDR_INLINE(xdrs, (%d + %s)* BYTES_PER_XDR_UNIT);",
                                                     size, sizestr);                                                      size, sizestr);
   
                                 f_print(fout, "\n\t\tif (buf == NULL) {\n");                                  f_print(fout, "\n\t\tif (buf == NULL) {\n");
   
                                 psav = cur;                                  psav = cur;
                                 while (cur != NULL) {                                  while (cur != NULL) {
                                         print_stat(2, &cur->decl);                                          print_stat(3, &cur->decl);
                                         cur = cur->next;                                          cur = cur->next;
                                 }                                  }
                                 f_print(fout, "\n\t  }\n\t  else {\n");                                  f_print(fout, "\t\t} else {\n");
   
                                 cur = psav;                                  cur = psav;
                                 while (cur != dl) {                                  while (cur != dl) {
Line 606 
Line 606 
                                         cur = cur->next;                                          cur = cur->next;
                                 }                                  }
   
                                 f_print(fout, "\t  }\n");                                  f_print(fout, "\t\t}\n");
   
                         }                          }
                 flag = GET;                  flag = GET;
         }          }
         f_print(fout, "\t return(TRUE);\n\t}\n\n");          f_print(fout, "\t\treturn (TRUE);\n\t}\n\n");
   
         /* now take care of XDR_FREE case */          /* now take care of XDR_FREE case */
   
Line 664 
Line 664 
   
         switch (decl->rel) {          switch (decl->rel) {
         case REL_ALIAS:          case REL_ALIAS:
                   f_print(fout, "\t");
                 emit_single_in_line(decl, flag, REL_ALIAS);                  emit_single_in_line(decl, flag, REL_ALIAS);
                 break;                  break;
         case REL_VECTOR:          case REL_VECTOR:
                 f_print(fout, "\t\t{ register %s *genp; \n", decl->type);                  f_print(fout, "\t\t\t{\n\t\t\t\t%s *genp;\n\n", decl->type);
                 f_print(fout, "\t\t  for ( i = 0,genp=objp->%s;\n \t\t\ti < %s; i++){\n\t\t",                  f_print(fout, "\t\t\t\tfor (i = 0, genp = objp->%s;\n\t\t\t\t    i < %s; i++) {\n\t\t\t",
                     decl->name, decl->array_max);                      decl->name, decl->array_max);
                 emit_single_in_line(decl, flag, REL_VECTOR);                  emit_single_in_line(decl, flag, REL_VECTOR);
                 f_print(fout, "\t\t   }\n\t\t };\n");                  f_print(fout, "\t\t\t\t}\n\t\t\t}\n");
   
         }          }
 }  }
Line 687 
Line 688 
   
   
         if (flag == PUT)          if (flag == PUT)
                 f_print(fout, "\t\t IXDR_PUT_");                  f_print(fout, "\t\tIXDR_PUT_");
         else          else
                 if (rel == REL_ALIAS)                  if (rel == REL_ALIAS)
                         f_print(fout, "\t\t objp->%s = IXDR_GET_", decl->name);                          f_print(fout, "\t\tobjp->%s = IXDR_GET_", decl->name);
                 else                  else
                         f_print(fout, "\t\t *genp++ = IXDR_GET_");                          f_print(fout, "\t\t*genp++ = IXDR_GET_");
   
         upp_case = upcase(decl->type);          upp_case = upcase(decl->type);
   
Line 709 
Line 710 
         }          }
         if (flag == PUT)          if (flag == PUT)
                 if (rel == REL_ALIAS)                  if (rel == REL_ALIAS)
                         f_print(fout, "%s(buf,objp->%s);\n", upp_case, decl->name);                          f_print(fout, "%s(buf, objp->%s);\n", upp_case, decl->name);
                 else                  else
                         f_print(fout, "%s(buf,*genp++);\n", upp_case);                          f_print(fout, "%s(buf, *genp++);\n", upp_case);
   
         else          else
                 f_print(fout, "%s(buf);\n", upp_case);                  f_print(fout, "%s(buf);\n", upp_case);
Line 730 
Line 731 
   
         ptr = (char *) malloc(strlen(str)+1);          ptr = (char *) malloc(strlen(str)+1);
         if (ptr == (char *) NULL) {          if (ptr == (char *) NULL) {
                 f_print(stderr, "malloc failed \n");                  f_print(stderr, "malloc failed\n");
                 exit(1);                  exit(1);
         };          }
   
         hptr = ptr;          hptr = ptr;
         while (*str != '\0')          while (*str != '\0')

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7