diff options
-rw-r--r-- | read.c | 4 | ||||
-rw-r--r-- | tag.c | 5 |
2 files changed, 7 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.215 2020/03/13 15:32:28 schwarze Exp $ */ +/* $Id: read.c,v 1.216 2020/03/13 16:16:58 schwarze Exp $ */ /* * Copyright (c) 2010-2019 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> @@ -678,11 +678,13 @@ mparse_alloc(int options, enum mandoc_os os_e, const char *os_s) void mparse_reset(struct mparse *curp) { + tag_free(); roff_reset(curp->roff); roff_man_reset(curp->man); free_buf_list(curp->secondary); curp->secondary = NULL; curp->gzip = 0; + tag_alloc(); } void @@ -1,4 +1,4 @@ -/* $Id: tag.c,v 1.28 2020/03/13 15:32:29 schwarze Exp $ */ +/* $Id: tag.c,v 1.29 2020/03/13 16:16:58 schwarze Exp $ */ /* * Copyright (c) 2015,2016,2018,2019,2020 Ingo Schwarze <schwarze@openbsd.org> * @@ -59,6 +59,8 @@ tag_free(void) struct tag_entry *entry; unsigned int slot; + if (tag_data.info.free == NULL) + return; entry = ohash_first(&tag_data, &slot); while (entry != NULL) { free(entry->nodes); @@ -66,6 +68,7 @@ tag_free(void) entry = ohash_next(&tag_data, &slot); } ohash_delete(&tag_data); + tag_data.info.free = NULL; } /* |