From 2431364f302519526c4abc314d76257c90552bf7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Francesco=20Potort=C3=AC?= Date: Tue, 16 Apr 2002 00:02:55 +0000 Subject: [PATCH] (find_entries): Bug fix in list management. --- lib-src/etags.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/lib-src/etags.c b/lib-src/etags.c index 56d6136e21c..67dc1c651d6 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -33,7 +33,7 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ * Francesco Potortì has maintained it since 1993. */ -char pot_etags_version[] = "@(#) pot revision number is 15.13"; +char pot_etags_version[] = "@(#) pot revision number is 15.15"; #define TRUE 1 #define FALSE 0 @@ -1530,10 +1530,18 @@ process_file (file, lang) if (retval < 0) pfatal (file); + /* If not Ctags, and if this is not metasource and if it contained no #line + directives, we can write the tags and free curfdp an all nodes pointing to + it. */ + if (!CTAGS + && curfdp == fdhead /* no #line directives in this file */ + && !curfdp->lang->metasource) + { + /* Write tags for file curfdp->taggedfname. */ + ; + } + cleanup: - /* Memory leak here: if this is not metasource and if it contained no #line - directives, curfdp could be freed, and so could all nodes pointing to it - if not CTAGS. */ if (compressed_name) free (compressed_name); if (uncompressed_name) free (uncompressed_name); return; @@ -1663,9 +1671,6 @@ find_entries (inf) { fdesc *badfdp = *fdpp; - *fdpp = badfdp->next; /* remove the bad description from the list */ - fdpp = &badfdp->next; /* advance the list pointer */ - if (DEBUG) fprintf (stderr, "Removing references to \"%s\" obtained from \"%s\"\n", @@ -1674,6 +1679,8 @@ find_entries (inf) /* Delete the tags referring to badfdp. */ invalidate_nodes (badfdp, nodehead); + *fdpp = badfdp->next; /* remove the bad description from the list */ + /* Delete badfdp. */ if (badfdp->infname != NULL) free (badfdp->infname); if (badfdp->infabsname != NULL) free (badfdp->infabsname); -- 2.39.5