]> git.cameronkatri.com Git - mandoc.git/blobdiff - read.c
preconv_encode() can take a const input buffer;
[mandoc.git] / read.c
diff --git a/read.c b/read.c
index 5c8af39778818883220bc6a9f3dec7665301c100..6d831c48b3921f538db45cfc58f6eb19bbae6198 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.159 2017/02/03 17:56:59 schwarze Exp $ */
+/*     $Id: read.c,v 1.160 2017/02/03 18:18:23 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -48,8 +48,8 @@
 #define        REPARSE_LIMIT   1000
 
 struct mparse {
 #define        REPARSE_LIMIT   1000
 
 struct mparse {
-       struct roff_man  *man; /* man parser */
        struct roff      *roff; /* roff parser (!NULL) */
        struct roff      *roff; /* roff parser (!NULL) */
+       struct roff_man  *man; /* man parser */
        char             *sodest; /* filename pointed to by .so */
        const char       *file; /* filename of current input file */
        struct buf       *primary; /* buffer currently being parsed */
        char             *sodest; /* filename pointed to by .so */
        const char       *file; /* filename of current input file */
        struct buf       *primary; /* buffer currently being parsed */
@@ -830,13 +830,14 @@ mparse_reset(struct mparse *curp)
 {
        roff_reset(curp->roff);
        roff_man_reset(curp->man);
 {
        roff_reset(curp->roff);
        roff_man_reset(curp->man);
+
+       free(curp->sodest);
+       curp->sodest = NULL;
+
        if (curp->secondary)
                curp->secondary->sz = 0;
 
        curp->file_status = MANDOCLEVEL_OK;
        if (curp->secondary)
                curp->secondary->sz = 0;
 
        curp->file_status = MANDOCLEVEL_OK;
-
-       free(curp->sodest);
-       curp->sodest = NULL;
        curp->gzip = 0;
 }
 
        curp->gzip = 0;
 }
 
@@ -845,8 +846,7 @@ mparse_free(struct mparse *curp)
 {
 
        roff_man_free(curp->man);
 {
 
        roff_man_free(curp->man);
-       if (curp->roff)
-               roff_free(curp->roff);
+       roff_free(curp->roff);
        if (curp->secondary)
                free(curp->secondary->buf);
 
        if (curp->secondary)
                free(curp->secondary->buf);