Mercurial > emacs
changeset 44614:5adf2b1c20bb
(find_entries): Bug fix in list management.
author | Francesco Potortì <pot@gnu.org> |
---|---|
date | Tue, 16 Apr 2002 00:02:55 +0000 |
parents | a24a2c25aea5 |
children | a1448e19a9f8 |
files | lib-src/etags.c |
diffstat | 1 files changed, 14 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lib-src/etags.c Tue Apr 16 00:02:38 2002 +0000 +++ b/lib-src/etags.c Tue Apr 16 00:02:55 2002 +0000 @@ -33,7 +33,7 @@ * Francesco Potort́ <pot@gnu.org> 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 @@ 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 @@ { 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 @@ /* 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);