[BACK]Return to mdoc_argv.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mdoc_argv.c between version 1.36 and 1.37

version 1.36, 2010/03/31 07:42:04 version 1.37, 2010/04/03 14:02:10
Line 288  mdoc_argv(struct mdoc *m, int line, enum mdoct tok,
Line 288  mdoc_argv(struct mdoc *m, int line, enum mdoct tok,
 void  void
 mdoc_argv_free(struct mdoc_arg *p)  mdoc_argv_free(struct mdoc_arg *p)
 {  {
         int              i, j;          int              i;
   
         if (NULL == p)          if (NULL == p)
                 return;                  return;
Line 300  mdoc_argv_free(struct mdoc_arg *p)
Line 300  mdoc_argv_free(struct mdoc_arg *p)
         }          }
         assert(p->argc);          assert(p->argc);
   
         /* LINTED */          for (i = (int)p->argc - 1; i >= 0; i--)
         for (i = 0; i < (int)p->argc; i++) {                  mdoc_argn_free(p, i);
                 if (0 == p->argv[i].sz)  
                         continue;  
                 if (NULL == p->argv[i].value)  
                         continue;  
   
                 /* LINTED */          free(p->argv);
                 for (j = 0; j < (int)p->argv[i].sz; j++)          free(p);
                         if (p->argv[i].value[j])  }
                                 free(p->argv[i].value[j]);  
   
                 free(p->argv[i].value);  
   void
   mdoc_argn_free(struct mdoc_arg *p, int iarg)
   {
           struct mdoc_argv *arg = &p->argv[iarg];
           int               j;
   
           if (arg->sz && arg->value) {
                   for (j = (int)arg->sz - 1; j >= 0; j--)
                           free(arg->value[j]);
                   free(arg->value);
         }          }
   
         free(p->argv);          for (--p->argc; iarg < (int)p->argc; iarg++)
         free(p);                  p->argv[iarg] = p->argv[iarg+1];
 }  }
   
   

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37

CVSweb