From 35972265c1559c0f5a14c97b17846f2bfbcb87e7 Mon Sep 17 00:00:00 2001 From: ellson Date: Sun, 20 Nov 2005 02:17:03 +0000 Subject: [PATCH] fix memory leak in gdtclft reported by Dave Bodenstab --- tclpkg/gdtclft/gdtclft.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tclpkg/gdtclft/gdtclft.c b/tclpkg/gdtclft/gdtclft.c index f749ff3a9..f44020b45 100644 --- a/tclpkg/gdtclft/gdtclft.c +++ b/tclpkg/gdtclft/gdtclft.c @@ -581,14 +581,14 @@ tclGdDestroyCmd(Tcl_Interp * interp, GdData * gdData, int argc, Tcl_Obj * CONST objv[]) { gdImagePtr im; - void *hdl; - - /* Get the handle, and the image pointer. */ - hdl = (void *) tclhandleXlate(gdData->handleTbl, - Tcl_GetString(objv[2])); - im = *(gdImagePtr *) hdl; - /* Release the handle, destroy the image. */ - tclhandleFree(gdData->handleTbl, hdl); + + unsigned long idx; + + if (tclhandleIndex(gdData->handleTbl, Tcl_GetString(objv[2]), &idx) != TCL_OK) + + return TCL_ERROR; + im = *(gdImagePtr *) tclhandleXlateIndex(gdData->handleTbl, idx); + tclhandleFreeIndex(gdData->handleTbl, idx); gdImageDestroy(im); return TCL_OK; -- 2.40.0