diff options
Diffstat (limited to 'generic/tkImage.c')
-rw-r--r-- | generic/tkImage.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/generic/tkImage.c b/generic/tkImage.c index 3312aef..feb65ab 100644 --- a/generic/tkImage.c +++ b/generic/tkImage.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkImage.c,v 1.18 2003/01/19 09:50:01 hobbs Exp $ + * RCS: @(#) $Id: tkImage.c,v 1.19 2003/01/22 14:32:59 dkf Exp $ */ #include "tkInt.h" @@ -237,8 +237,23 @@ Tk_ImageObjCmd(clientData, interp, objc, objv) name = idString; firstOption = 3; } else { + TkWindow *topWin; + name = arg; firstOption = 4; + /* + * Need to check if the _command_ that we are about to + * create is the name of the current master widget + * command (normally "." but could have been renamed) + * and fail in that case before a really nasty and + * hard to stop crash happens. + */ + topWin = (TkWindow *) TkToplevelWindowForCommand(interp, name); + if (topWin != NULL && winPtr->mainPtr->winPtr == topWin) { + Tcl_AppendResult(interp, "images may not be named the ", + "same as the main window", (char *) NULL); + return TCL_ERROR; + } } /* |