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

Diff for /src/usr.bin/yacc/reader.c between version 1.21 and 1.22

version 1.21, 2009/10/27 23:59:50 version 1.22, 2010/07/14 13:13:42
Line 1120 
Line 1120 
 {  {
     nitems = 4;      nitems = 4;
     maxitems = 300;      maxitems = 300;
     pitem = (bucket **) MALLOC(maxitems*sizeof(bucket *));      pitem = (bucket **) CALLOC(maxitems, sizeof(bucket *));
     if (pitem == 0) no_space();      if (pitem == 0) no_space();
     pitem[0] = 0;  
     pitem[1] = 0;  
     pitem[2] = 0;  
     pitem[3] = 0;  
   
     nrules = 3;      nrules = 3;
     maxrules = 100;      maxrules = 100;
Line 1150 
Line 1146 
 void  void
 expand_items(void)  expand_items(void)
 {  {
       int olditems = maxitems;
     maxitems += 300;      maxitems += 300;
     pitem = (bucket **) REALLOC(pitem, maxitems*sizeof(bucket *));      pitem = (bucket **) REALLOC(pitem, maxitems*sizeof(bucket *));
     if (pitem == 0) no_space();      if (pitem == 0) no_space();
       memset(pitem + olditems, 0, (maxitems - olditems)*sizeof(bucket *));
 }  }
   
   
Line 1242 
Line 1240 
     if (!last_was_action && plhs[nrules]->tag)      if (!last_was_action && plhs[nrules]->tag)
     {      {
         for (i = nitems - 1; pitem[i]; --i) continue;          for (i = nitems - 1; pitem[i]; --i) continue;
         if (pitem[i+1] == 0 || pitem[i+1]->tag != plhs[nrules]->tag)          if (i == maxitems - 1 || pitem[i+1] == 0 ||
               pitem[i+1]->tag != plhs[nrules]->tag)
             default_action_warning();              default_action_warning();
     }      }
   

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22