Author: imp
Date: Sun Jun  2 16:30:53 2019
New Revision: 348513
URL: https://svnweb.freebsd.org/changeset/base/348513

Log:
  Reapply r315426 by pfg:
  
  |    MFV r315425: one-true-awk: have calloc(3) do the multiplication.

Modified:
  head/contrib/one-true-awk/b.c

Modified: head/contrib/one-true-awk/b.c
==============================================================================
--- head/contrib/one-true-awk/b.c       Sun Jun  2 16:28:20 2019        
(r348512)
+++ head/contrib/one-true-awk/b.c       Sun Jun  2 16:30:53 2019        
(r348513)
@@ -148,7 +148,7 @@ fa *mkdfa(const char *s, int anchor)        /* does the 
real 
        f->accept = poscnt-1;   /* penter has computed number of positions in 
re */
        cfoll(f, p1);   /* set up follow sets */
        freetr(p1);
-       if ((f->posns[0] = (int *) calloc(1, *(f->re[0].lfollow)*sizeof(int))) 
== NULL)
+       if ((f->posns[0] = (int *) calloc(*(f->re[0].lfollow), sizeof(int))) == 
NULL)
                        overflo("out of space in makedfa");
        if ((f->posns[1] = (int *) calloc(1, sizeof(int))) == NULL)
                overflo("out of space in makedfa");
@@ -172,7 +172,7 @@ int makeinit(fa *f, int anchor)
        f->reset = 0;
        k = *(f->re[0].lfollow);
        xfree(f->posns[2]);                     
-       if ((f->posns[2] = (int *) calloc(1, (k+1)*sizeof(int))) == NULL)
+       if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL)
                overflo("out of space in makeinit");
        for (i=0; i <= k; i++) {
                (f->posns[2])[i] = (f->re[0].lfollow)[i];
@@ -387,7 +387,7 @@ void cfoll(fa *f, Node *v)  /* enter follow set of each
                        setvec[i] = 0;
                setcnt = 0;
                follow(v);      /* computes setvec and setcnt */
-               if ((p = (int *) calloc(1, (setcnt+1)*sizeof(int))) == NULL)
+               if ((p = (int *) calloc(setcnt+1, sizeof(int))) == NULL)
                        overflo("out of space building follow set");
                f->re[info(v)].lfollow = p;
                *p = setcnt;
@@ -561,7 +561,7 @@ int pmatch(fa *f, const char *p0)   /* longest match, fo
                        for (i = 2; i <= f->curstat; i++)
                                xfree(f->posns[i]);
                        k = *f->posns[0];                       
-                       if ((f->posns[2] = (int *) calloc(1, 
(k+1)*sizeof(int))) == NULL)
+                       if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == 
NULL)
                                overflo("out of space in pmatch");
                        for (i = 0; i <= k; i++)
                                (f->posns[2])[i] = (f->posns[0])[i];
@@ -618,7 +618,7 @@ int nematch(fa *f, const char *p0)  /* non-empty match,
                        for (i = 2; i <= f->curstat; i++)
                                xfree(f->posns[i]);
                        k = *f->posns[0];                       
-                       if ((f->posns[2] = (int *) calloc(1, 
(k+1)*sizeof(int))) == NULL)
+                       if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == 
NULL)
                                overflo("out of state space");
                        for (i = 0; i <= k; i++)
                                (f->posns[2])[i] = (f->posns[0])[i];
@@ -1194,7 +1194,7 @@ int cgoto(fa *f, int s, int c)
        for (i = 0; i < NCHARS; i++)
                f->gototab[f->curstat][i] = 0;
        xfree(f->posns[f->curstat]);
-       if ((p = (int *) calloc(1, (setcnt+1)*sizeof(int))) == NULL)
+       if ((p = (int *) calloc(setcnt+1, sizeof(int))) == NULL)
                overflo("out of space in cgoto");
 
        f->posns[f->curstat] = p;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to