Commit Graph

19 Commits

Author SHA1 Message Date
elliotth 7d841621f4 trunk/args.c:
trunk/asm.c: 
trunk/beta.c: 
trunk/eiffel.c: 
trunk/fortran.c: 
trunk/jscript.c: 
trunk/lregex.c: 
trunk/main.c: 
trunk/options.c: 
trunk/pascal.c: 
trunk/read.c: 
trunk/routines.c: 
trunk/routines.h: 
trunk/sml.c: 
trunk/sql.c: fix almost all our current memory leaks. Based on a patch from Dmitry Antipov, but also using his vString leak detector and valgrind(1) to find new ones and ones he missed. Three known leaks remain. The first is in parseLongOption. There's also one in "fortran.c" and another in "sql.c":

helium:~/Projects/ctags/trunk$ valgrind --leak-check=full --show-reachable=yes ./dctags -f - Test/*
==3056== Memcheck, a memory error detector.
==3056== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
==3056== Using LibVEX rev 1658, a library for dynamic binary translation.
==3056== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==3056== Using valgrind-3.2.1-Debian, a dynamic binary instrumentation framework.
==3056== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==3056== For more details, rerun with: -v
==3056== 
.
.
.
==3056== 
==3056== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 1)
==3056== malloc/free: in use at exit: 708 bytes in 22 blocks.
==3056== malloc/free: 36,126 allocs, 36,104 frees, 1,584,216 bytes allocated.
==3056== For counts of detected errors, rerun with: -v
==3056== searching for pointers to 22 not-freed blocks.
==3056== checked 68,184 bytes.
==3056== 
==3056== 68 bytes in 2 blocks are definitely lost in loss record 1 of 2
==3056==    at 0x4021620: malloc (vg_replace_malloc.c:149)
==3056==    by 0x806347E: eMalloc (routines.c:238)
==3056==    by 0x8065B68: newToken (sql.c:347)
==3056==    by 0x80662BB: parseSubProgram (sql.c:688)
==3056==    by 0x8067867: parseSqlFile (sql.c:1782)
==3056==    by 0x8067934: findSqlTags (sql.c:1810)
==3056==    by 0x8060760: createTagsForFile (parse.c:618)
==3056==    by 0x8060810: createTagsWithFallback (parse.c:640)
==3056==    by 0x80608DC: parseFile (parse.c:667)
==3056==    by 0x805B7D6: createTagsForEntry (main.c:303)
==3056==    by 0x805B811: createTagsForArgs (main.c:348)
==3056==    by 0x805BD6F: makeTags (main.c:494)
==3056== 
==3056== 
==3056== 640 bytes in 20 blocks are still reachable in loss record 2 of 2
==3056==    at 0x4021620: malloc (vg_replace_malloc.c:149)
==3056==    by 0x806347E: eMalloc (routines.c:238)
==3056==    by 0x806AEE2: vStringNew (vstring.c:116)
==3056==    by 0x80542C0: newToken (fortran.c:419)
==3056==    by 0x8054309: newTokenFrom (fortran.c:429)
==3056==    by 0x80562E5: parseInterfaceBlock (fortran.c:1709)
==3056==    by 0x805661D: parseDeclarationConstruct (fortran.c:1834)
==3056==    by 0x805679F: parseSpecificationPart (fortran.c:1901)
==3056==    by 0x80569F5: parseModule (fortran.c:1990)
==3056==    by 0x8056E05: parseProgramUnit (fortran.c:2142)
==3056==    by 0x8056F37: findFortranTags (fortran.c:2183)
==3056==    by 0x806077A: createTagsForFile (parse.c:620)
==3056== 
==3056== LEAK SUMMARY:
==3056==    definitely lost: 68 bytes in 2 blocks.
==3056==      possibly lost: 0 bytes in 0 blocks.
==3056==    still reachable: 640 bytes in 20 blocks.
==3056==         suppressed: 0 bytes in 0 blocks.

I think they're both awkward longjmp(3)/setjmp(3)-related leaks, and I don't currently have a good solution. ("eiffel.c" cunningly only calls newToken once, before calling setjmp(3).)


git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@536 c5d04d22-be80-434c-894e-aa346cc9e8e8
2007-06-02 06:09:00 +00:00
darren 923467510f Reformatted code for independence of tab stop setting.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@443 c5d04d22-be80-434c-894e-aa346cc9e8e8
2006-05-30 04:37:13 +00:00
darren 07819de323 Changed value representing failure to lookup keyword.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@339 c5d04d22-be80-434c-894e-aa346cc9e8e8
2003-07-17 03:08:24 +00:00
darren 66f16b6564 Updated copyright dates.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@316 c5d04d22-be80-434c-894e-aa346cc9e8e8
2003-04-01 04:55:28 +00:00
darren 27c5117280 Minor typographical changes.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@272 c5d04d22-be80-434c-894e-aa346cc9e8e8
2003-02-23 17:39:12 +00:00
darren 08028947d5 Fixed ordering problem causing assertion failure.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@271 c5d04d22-be80-434c-894e-aa346cc9e8e8
2003-02-23 16:40:42 +00:00
darren ce1c11f9a8 Added keyword hash to Asm parser.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@200 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-09-04 03:30:54 +00:00
darren d9d33c6a99 Improved. Allowed recognition of EQU statements not in column 1.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@199 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-09-04 02:41:27 +00:00
darren baedbb9341 Minor cleanup and minor bug fix to recognize DB, etc.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@197 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-08-29 03:06:58 +00:00
darren 04cb4692be Made available string comparison routines which guaranteed upper-case conversion.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@162 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-06-15 23:16:04 +00:00
darren 35835070a0 Moved symbol parsing into subroutine.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@159 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-06-11 19:17:13 +00:00
darren 78ed7dc79c Changed Asm parser back to C-based parser to eliminate duplicate tags and extend its functionality.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@150 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-05-30 02:45:27 +00:00
darren 55a872fd96 Improved rejection capabilities. Added file patterns.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@147 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-05-29 21:34:57 +00:00
darren e924dced8c Added include file needed on FreeBSD.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@125 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-02-25 04:47:49 +00:00
darren 9af5745410 Improved regular expressions.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@122 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-02-24 21:29:00 +00:00
darren 4ebe90d678 Improved regular expressions.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@121 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-02-24 21:26:35 +00:00
darren a2a84af084 Converted Asm parser to regex, extending support for language variants.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@119 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-02-24 19:01:29 +00:00
darren 81f3bd7422 Updated copyright dates.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@109 c5d04d22-be80-434c-894e-aa346cc9e8e8
2002-02-17 06:04:32 +00:00
darren d1105d2bed Initial restoration.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@2 c5d04d22-be80-434c-894e-aa346cc9e8e8
2001-11-02 04:53:43 +00:00