=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mdoc_argv.c,v retrieving revision 1.22 retrieving revision 1.23 diff -c -r1.22 -r1.23 *** src/usr.bin/mandoc/mdoc_argv.c 2010/04/02 12:39:47 1.22 --- src/usr.bin/mandoc/mdoc_argv.c 2010/04/03 16:30:42 1.23 *************** *** 1,4 **** ! /* $Id: mdoc_argv.c,v 1.22 2010/04/02 12:39:47 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: mdoc_argv.c,v 1.23 2010/04/03 16:30:42 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * *************** *** 285,291 **** void mdoc_argv_free(struct mdoc_arg *p) { ! int i, j; if (NULL == p) return; --- 285,291 ---- void mdoc_argv_free(struct mdoc_arg *p) { ! int i; if (NULL == p) return; *************** *** 297,319 **** } assert(p->argc); ! /* LINTED */ ! for (i = 0; i < (int)p->argc; i++) { ! if (0 == p->argv[i].sz) ! continue; ! if (NULL == p->argv[i].value) ! continue; ! /* LINTED */ ! for (j = 0; j < (int)p->argv[i].sz; j++) ! if (p->argv[i].value[j]) ! free(p->argv[i].value[j]); ! free(p->argv[i].value); } ! free(p->argv); ! free(p); } --- 297,324 ---- } assert(p->argc); ! for (i = p->argc - 1; i >= 0; i--) ! mdoc_argn_free(p, i); ! free(p->argv); ! free(p); ! } ! ! 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 = arg->sz - 1; j >= 0; j--) ! free(arg->value[j]); ! free(arg->value); } ! for (--p->argc; iarg < (int)p->argc; iarg++) ! p->argv[iarg] = p->argv[iarg+1]; }