GraphicsMagick: Add a Add a TclMagick test program. Memory leak...
GraphicsMagick Commits <[email protected]> Tue, 24 Sep 2024 10:48:49 -0500
| Newsgroups | gmane.comp.video.graphicsmagick.cvs |
|---|---|
| Message-ID | <mailman.23653.1727192944.7833.graphicsmagick-commit@lists.sourceforge.net> |
changeset d275416799ad in /hg/GraphicsMagick details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=d275416799ad summary: Add a Add a TclMagick test program. Memory leak fixes. 'make test' does something. diffstat: ChangeLog | 14 ++++ TclMagick/Makefile.am | 18 ++++- TclMagick/Makefile.in | 107 ++++++++++++++++++++++++-------- TclMagick/generic/TclMagick.c | 19 +++-- TclMagick/generic/TclMagick.h | 8 ++- TclMagick/generic/TclMagickAppInit.c | 2 + TclMagick/generic/libttkcommon.c | 1 - TclMagick/tests/test-draw.tcl | 2 + TclMagick/tests/test-wand.tcl | 2 + VisualMagick/installer/inc/version.isx | 4 +- magick/version.h | 4 +- www/ChangeLog.html | 12 +++ 12 files changed, 149 insertions(+), 44 deletions(-) diffs (463 lines): diff -r 377926dd1d12 -r d275416799ad ChangeLog --- a/ChangeLog Fri Sep 20 12:20:09 2024 -0500 +++ b/ChangeLog Tue Sep 24 10:48:24 2024 -0500 @@ -1,3 +1,17 @@ +2024-09-24 Bob Friesenhahn <[email protected]> + + * TclMagick/Makefile.am: 'make test' does something. Not yet what + it should be. + + * TclMagick/tests/test-wand.tcl: Fix memork leak of $img and $seq. + + * TclMagick/tests/test-draw.tcl: Fix memory leak of $img. + + * generic/TclMagickAppInit.c: Add a TclMagick test program. + + * TclMagick/generic/TkMagick.c: Fix memory leak of 'fonts' and + 'formats' lists members. + 2024-09-20 Bob Friesenhahn <[email protected]> * TclMagick/Makefile.am: Now uses non-recursive build and produces diff -r 377926dd1d12 -r d275416799ad TclMagick/Makefile.am --- a/TclMagick/Makefile.am Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/Makefile.am Tue Sep 24 10:48:24 2024 -0500 @@ -35,6 +35,15 @@ generic_TkMagick_la_LIBADD = @TCL_STUB_LIB_SPEC@ @TK_STUB_LIB_SPEC@ @TCL_LIBS@ @TK_LIBS@ @GM_LIBS@ generic/libttkcommon.la generic_TkMagick_la_CPPFLAGS = -Igeneric/ @TCL_INCLUDES@ @GM_CPPFLAGS@ @TK_INCLUDES@ @TK_XINCLUDES@ +# A TclMagick executable (not installed) +generic_PGMS = generic/TclMagick +generic_TclMagick_SOURCES = generic/TclMagickAppInit.c +generic_TclMagick_CPPFLAGS = -Igeneric/ @TCL_INCLUDES@ @GM_CPPFLAGS@ +generic_TclMagick_LDADD = $(generic_lib_magick_LTLIBRARIES) @TCL_STUB_LIB_SPEC@ @TK_STUB_LIB_SPEC@ @TCL_LIB_SPEC@ @TK_LIB_SPEC@ @TCL_LIB_FLAG@ @TK_LIB_FLAG@ @TCL_LIBS@ @TK_LIBS@ @GM_LIBS@ + +noinst_PROGRAMS = \ + $(generic_PGMS) + CLEANFILES = generic/pkgIndex.tcl @@ -46,9 +55,12 @@ rm -v $(DESTDIR)@libdir@/TclMagick@VERSION@/pkgIndex.tcl test: - cd generic && $(TCLSH) `@CYGPATH@ $(srcdir)/tests/test-wand.tcl` $(TESTFLAGS) \ - -load "package ifneeded $(PACKAGE_NAME)3 $(PACKAGE_VERSION) \ - [list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)3]]" + cd $(abs_srcdir)/generic && $(abs_builddir)/generic/TclMagick $(abs_srcdir)/tests/test-wand.tcl + +#test: +# cd generic && $(TCLSH) `@CYGPATH@ $(srcdir)/tests/test-wand.tcl` $(TESTFLAGS) \ +# -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ +# [list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)]]" # Run Clang analyzer on the project. # In order for this to work, you must have first installed the 'clang' diff -r 377926dd1d12 -r d275416799ad TclMagick/Makefile.in --- a/TclMagick/Makefile.in Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/Makefile.in Tue Sep 24 10:48:24 2024 -0500 @@ -19,6 +19,7 @@ # Copyright David N. Welton <[email protected]>, 2004, with many # thanks to Bob Friesenhahn for all the help. + VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -93,6 +94,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +noinst_PROGRAMS = $(am__EXEEXT_1) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/unix/m4/libtool.m4 \ @@ -111,6 +113,8 @@ CONFIG_HEADER = $(top_builddir)/generic/config.h CONFIG_CLEAN_FILES = generic/pkgIndex.tcl CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = generic/TclMagick$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -168,6 +172,10 @@ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(generic_libttkcommon_la_LDFLAGS) \ $(LDFLAGS) -o $@ +am_generic_TclMagick_OBJECTS = \ + generic/TclMagick-TclMagickAppInit.$(OBJEXT) +generic_TclMagick_OBJECTS = $(am_generic_TclMagick_OBJECTS) +generic_TclMagick_DEPENDENCIES = $(generic_lib_magick_LTLIBRARIES) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -183,7 +191,8 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/generic depcomp = $(SHELL) $(top_srcdir)/unix/config/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo \ +am__depfiles_remade = generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po \ + generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo \ generic/$(DEPDIR)/TkMagick_la-TkMagick.Plo \ generic/$(DEPDIR)/libttkcommon_la-libttkcommon.Plo am__mv = mv -f @@ -207,10 +216,12 @@ am__v_CCLD_1 = SOURCES = $(generic_TclMagick_la_SOURCES) \ $(generic_TkMagick_la_SOURCES) \ - $(generic_libttkcommon_la_SOURCES) + $(generic_libttkcommon_la_SOURCES) \ + $(generic_TclMagick_SOURCES) DIST_SOURCES = $(generic_TclMagick_la_SOURCES) \ $(generic_TkMagick_la_SOURCES) \ - $(generic_libttkcommon_la_SOURCES) + $(generic_libttkcommon_la_SOURCES) \ + $(generic_TclMagick_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -484,6 +495,12 @@ generic_TkMagick_la_LDFLAGS = @GM_LDFLAGS@ -L$(generic_lib_magickdir) -no-undefined -module generic_TkMagick_la_LIBADD = @TCL_STUB_LIB_SPEC@ @TK_STUB_LIB_SPEC@ @TCL_LIBS@ @TK_LIBS@ @GM_LIBS@ generic/libttkcommon.la generic_TkMagick_la_CPPFLAGS = -Igeneric/ @TCL_INCLUDES@ @GM_CPPFLAGS@ @TK_INCLUDES@ @TK_XINCLUDES@ + +# A TclMagick executable (not installed) +generic_PGMS = generic/TclMagick +generic_TclMagick_SOURCES = generic/TclMagickAppInit.c +generic_TclMagick_CPPFLAGS = -Igeneric/ @TCL_INCLUDES@ @GM_CPPFLAGS@ +generic_TclMagick_LDADD = $(generic_lib_magick_LTLIBRARIES) @TCL_STUB_LIB_SPEC@ @TK_STUB_LIB_SPEC@ @TCL_LIB_SPEC@ @TK_LIB_SPEC@ @TCL_LIB_FLAG@ @TK_LIB_FLAG@ @TCL_LIBS@ @TK_LIBS@ @GM_LIBS@ all: all-am .SUFFIXES: @@ -539,6 +556,15 @@ generic/pkgIndex.tcl: $(top_builddir)/config.status $(top_srcdir)/generic/pkgIndex.tcl.in cd $(top_builddir) && $(SHELL) ./config.status $@ +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list + install-generic_lib_magickLTLIBRARIES: $(generic_lib_magick_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(generic_lib_magick_LTLIBRARIES)'; test -n "$(generic_lib_magickdir)" || list=; \ @@ -594,6 +620,12 @@ generic/libttkcommon.la: $(generic_libttkcommon_la_OBJECTS) $(generic_libttkcommon_la_DEPENDENCIES) $(EXTRA_generic_libttkcommon_la_DEPENDENCIES) generic/$(am__dirstamp) $(AM_V_CCLD)$(generic_libttkcommon_la_LINK) -rpath $(generic_lib_magickdir) $(generic_libttkcommon_la_OBJECTS) $(generic_libttkcommon_la_LIBADD) $(LIBS) +generic/TclMagick-TclMagickAppInit.$(OBJEXT): generic/$(am__dirstamp) \ + generic/$(DEPDIR)/$(am__dirstamp) + +generic/TclMagick$(EXEEXT): $(generic_TclMagick_OBJECTS) $(generic_TclMagick_DEPENDENCIES) $(EXTRA_generic_TclMagick_DEPENDENCIES) generic/$(am__dirstamp) + @rm -f generic/TclMagick$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(generic_TclMagick_OBJECTS) $(generic_TclMagick_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -603,6 +635,7 @@ distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/TkMagick_la-TkMagick.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@generic/$(DEPDIR)/libttkcommon_la-libttkcommon.Plo@am__quote@ # am--include-marker @@ -658,6 +691,20 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generic_libttkcommon_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o generic/libttkcommon_la-libttkcommon.lo `test -f 'generic/libttkcommon.c' || echo '$(srcdir)/'`generic/libttkcommon.c +generic/TclMagick-TclMagickAppInit.o: generic/TclMagickAppInit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generic_TclMagick_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT generic/TclMagick-TclMagickAppInit.o -MD -MP -MF generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Tpo -c -o generic/TclMagick-TclMagickAppInit.o `test -f 'generic/TclMagickAppInit.c' || echo '$(srcdir)/'`generic/TclMagickAppInit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Tpo generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/TclMagickAppInit.c' object='generic/TclMagick-TclMagickAppInit.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generic_TclMagick_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o generic/TclMagick-TclMagickAppInit.o `test -f 'generic/TclMagickAppInit.c' || echo '$(srcdir)/'`generic/TclMagickAppInit.c + +generic/TclMagick-TclMagickAppInit.obj: generic/TclMagickAppInit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generic_TclMagick_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT generic/TclMagick-TclMagickAppInit.obj -MD -MP -MF generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Tpo -c -o generic/TclMagick-TclMagickAppInit.obj `if test -f 'generic/TclMagickAppInit.c'; then $(CYGPATH_W) 'generic/TclMagickAppInit.c'; else $(CYGPATH_W) '$(srcdir)/generic/TclMagickAppInit.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Tpo generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/TclMagickAppInit.c' object='generic/TclMagick-TclMagickAppInit.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generic_TclMagick_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o generic/TclMagick-TclMagickAppInit.obj `if test -f 'generic/TclMagickAppInit.c'; then $(CYGPATH_W) 'generic/TclMagickAppInit.c'; else $(CYGPATH_W) '$(srcdir)/generic/TclMagickAppInit.c'; fi` + mostlyclean-libtool: -rm -f *.lo @@ -898,7 +945,7 @@ exit 1; } >&2 check-am: all-am check: check-am -all-am: Makefile $(LTLIBRARIES) +all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(generic_lib_magickdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ @@ -939,11 +986,12 @@ clean: clean-am clean-am: clean-generic clean-generic_lib_magickLTLIBRARIES \ - clean-libtool mostlyclean-am + clean-libtool clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo + -rm -f generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po + -rm -f generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo -rm -f generic/$(DEPDIR)/TkMagick_la-TkMagick.Plo -rm -f generic/$(DEPDIR)/libttkcommon_la-libttkcommon.Plo -rm -f Makefile @@ -994,7 +1042,8 @@ maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -f generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo + -rm -f generic/$(DEPDIR)/TclMagick-TclMagickAppInit.Po + -rm -f generic/$(DEPDIR)/TclMagick_la-TclMagick.Plo -rm -f generic/$(DEPDIR)/TkMagick_la-TkMagick.Plo -rm -f generic/$(DEPDIR)/libttkcommon_la-libttkcommon.Plo -rm -f Makefile @@ -1019,23 +1068,24 @@ .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \ check-am clean clean-cscope clean-generic \ - clean-generic_lib_magickLTLIBRARIES clean-libtool cscope \ - cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - dist-zstd distcheck distclean distclean-compile \ - distclean-generic distclean-hdr distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-data-local install-dvi \ - install-dvi-am install-exec install-exec-am \ - install-generic_lib_magickLTLIBRARIES install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ - pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-generic_lib_magickLTLIBRARIES uninstall-local + clean-generic_lib_magickLTLIBRARIES clean-libtool \ + clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-compile distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-generic_lib_magickLTLIBRARIES \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-generic_lib_magickLTLIBRARIES \ + uninstall-local .PRECIOUS: Makefile @@ -1048,9 +1098,12 @@ rm -v $(DESTDIR)@libdir@/TclMagick@VERSION@/pkgIndex.tcl test: - cd generic && $(TCLSH) `@CYGPATH@ $(srcdir)/tests/test-wand.tcl` $(TESTFLAGS) \ - -load "package ifneeded $(PACKAGE_NAME)3 $(PACKAGE_VERSION) \ - [list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)3]]" + cd $(abs_srcdir)/generic && $(abs_builddir)/generic/TclMagick $(abs_srcdir)/tests/test-wand.tcl + +#test: +# cd generic && $(TCLSH) `@CYGPATH@ $(srcdir)/tests/test-wand.tcl` $(TESTFLAGS) \ +# -load "package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ +# [list load `@CYGPATH@ $(PKG_LIB_FILE)` [string totitle $(PACKAGE_NAME)]]" # Run Clang analyzer on the project. # In order for this to work, you must have first installed the 'clang' diff -r 377926dd1d12 -r d275416799ad TclMagick/generic/TclMagick.c --- a/TclMagick/generic/TclMagick.c Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/generic/TclMagick.c Tue Sep 24 10:48:24 2024 -0500 @@ -207,7 +207,7 @@ return (strlen(name) == 0); } - +#if 0 /*---------------------------------------------------------------------- * Find TclMagick objects *---------------------------------------------------------------------- @@ -229,6 +229,7 @@ return mPtr; } } +#endif /*---------------------------------------------------------------------- * encoding functions @@ -461,11 +462,12 @@ for( i=0; i < listLen; i++ ) { Tcl_ListObjAppendElement(interp, listPtr, Tcl_NewStringObj(fonts[i], (int)strlen(fonts[i])) ); + MagickRelinquishMemory(fonts[i]); /* Free individual font entry */ } Tcl_SetObjResult(interp, listPtr); } if (fonts != NULL) - MagickRelinquishMemory(fonts); /* Free TclMagick resource */ + MagickRelinquishMemory(fonts); /* Free fonts list */ break; } @@ -476,7 +478,7 @@ unsigned long listLen = 0; Tcl_Obj *listPtr; char *pattern = "*"; - char **fonts; + char **formats; if( objc > 3 ) { Tcl_WrongNumArgs(interp, 2, objv, "?pattern?"); @@ -486,17 +488,18 @@ pattern = Tcl_GetString(objv[2]); } - fonts = MagickQueryFormats(pattern, &listLen); - if( (fonts != NULL) && (listLen > 0) ) { + formats = MagickQueryFormats(pattern, &listLen); + if( (formats != NULL) && (listLen > 0) ) { listPtr = Tcl_NewListObj(0, NULL); for( i=0; i < listLen; i++ ) { Tcl_ListObjAppendElement(interp, listPtr, - Tcl_NewStringObj(fonts[i], (int)strlen(fonts[i])) ); + Tcl_NewStringObj(formats[i], (int)strlen(formats[i])) ); + MagickRelinquishMemory(formats[i]); } Tcl_SetObjResult(interp, listPtr); } - if (fonts != NULL) - MagickRelinquishMemory(fonts); /* Free TclMagick resource */ + if (formats != NULL) + MagickRelinquishMemory(formats); /* Free TclMagick resource */ break; } diff -r 377926dd1d12 -r d275416799ad TclMagick/generic/TclMagick.h --- a/TclMagick/generic/TclMagick.h Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/generic/TclMagick.h Tue Sep 24 10:48:24 2024 -0500 @@ -51,8 +51,14 @@ # define EXPORT(a,b) a b #endif +#endif -#endif +/* Export Tclmagick_Init() for static linkage */ +extern int Tclmagick_Init(Tcl_Interp *interp); + +/* Export Tclmagick_SafeInit for static linkage */ +extern int Tclmagick_SafeInit(Tcl_Interp *interp); + /* vim: set ts=8 sts=8 sw=8 noet: */ /* * Local Variables: diff -r 377926dd1d12 -r d275416799ad TclMagick/generic/TclMagickAppInit.c --- a/TclMagick/generic/TclMagickAppInit.c Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/generic/TclMagickAppInit.c Tue Sep 24 10:48:24 2024 -0500 @@ -36,6 +36,8 @@ extern void XtToolkitInitialize _ANSI_ARGS_((void)); extern int Tclxttest_Init _ANSI_ARGS_((Tcl_Interp *interp)); #endif + +#include "TclMagick.h" /* *---------------------------------------------------------------------- diff -r 377926dd1d12 -r d275416799ad TclMagick/generic/libttkcommon.c --- a/TclMagick/generic/libttkcommon.c Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/generic/libttkcommon.c Tue Sep 24 10:48:24 2024 -0500 @@ -1,7 +1,6 @@ /* * tcltkcommon.c: data and functions shared by TclMagick.c TkMagick.c */ - #include "libttkcommon.h" #include "TclMagick.h" diff -r 377926dd1d12 -r d275416799ad TclMagick/tests/test-draw.tcl --- a/TclMagick/tests/test-draw.tcl Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/tests/test-draw.tcl Tue Sep 24 10:48:24 2024 -0500 @@ -258,6 +258,8 @@ } } +magick delete $img + puts "##### DRAW TEST READY #####" if {!$ERRORS} { after 3000 exit diff -r 377926dd1d12 -r d275416799ad TclMagick/tests/test-wand.tcl --- a/TclMagick/tests/test-wand.tcl Fri Sep 20 12:20:09 2024 -0500 +++ b/TclMagick/tests/test-wand.tcl Tue Sep 24 10:48:24 2024 -0500 @@ -1530,6 +1530,8 @@ } } +magick delete $img $seq + puts "*********** READY **************" if {$SKIPPED} { puts [format "tested=%d errors=%d skipped=%d" $TESTED $ERRORS $SKIPPED] diff -r 377926dd1d12 -r d275416799ad VisualMagick/installer/inc/version.isx --- a/VisualMagick/installer/inc/version.isx Fri Sep 20 12:20:09 2024 -0500 +++ b/VisualMagick/installer/inc/version.isx Tue Sep 24 10:48:24 2024 -0500 @@ -10,5 +10,5 @@ #define public MagickPackageName "GraphicsMagick" #define public MagickPackageVersion "1.4" -#define public MagickPackageVersionAddendum ".020240920" -#define public MagickPackageReleaseDate "snapshot-20240920" +#define public MagickPackageVersionAddendum ".020240924" +#define public MagickPackageReleaseDate "snapshot-20240924" diff -r 377926dd1d12 -r d275416799ad magick/version.h --- a/magick/version.h Fri Sep 20 12:20:09 2024 -0500 +++ b/magick/version.h Tue Sep 24 10:48:24 2024 -0500 @@ -38,8 +38,8 @@ #define MagickLibVersion 0x282502 #define MagickLibVersionText "1.4" #define MagickLibVersionNumber 28,25,2 -#define MagickChangeDate "20240920" -#define MagickReleaseDate "snapshot-20240920" +#define MagickChangeDate "20240924" +#define MagickReleaseDate "snapshot-20240924" /* The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines diff -r 377926dd1d12 -r d275416799ad www/ChangeLog.html --- a/www/ChangeLog.html Fri Sep 20 12:20:09 2024 -0500 +++ b/www/ChangeLog.html Tue Sep 24 10:48:24 2024 -0500 @@ -38,6 +38,18 @@ <main id="graphicsmagick-changelog"> <h1 class="title">GraphicsMagick ChangeLog</h1> +<p>2024-09-24 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> +<blockquote> +<ul class="simple"> +<li><p>TclMagick/Makefile.am: 'make test' does something. Not yet what +it should be.</p></li> +<li><p>TclMagick/tests/test-wand.tcl: Fix memork leak of $img and $seq.</p></li> +<li><p>TclMagick/tests/test-draw.tcl: Fix memory leak of $img.</p></li> +<li><p>generic/TclMagickAppInit.c: Add a TclMagick test program.</p></li> +<li><p>TclMagick/generic/TkMagick.c: Fix memory leak of 'fonts' and +'formats' lists members.</p></li> +</ul> +</blockquote> <p>2024-09-20 Bob Friesenhahn <<a class="reference external" href="mailto:bfriesen%40simple.dallas.tx.us">bfriesen<span>@</span>simple<span>.</span>dallas<span>.</span>tx<span>.</span>us</a>></p> <blockquote> <ul class="simple">