diff options
author | fvogel <fvogelnew1@free.fr> | 2023-10-28 08:18:24 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2023-10-28 08:18:24 (GMT) |
commit | ce6721ee9864fc0df797cc68e36377e0cf7c4b4c (patch) | |
tree | 9b7274789e0784400cea0deed5b1b0309b404dd2 /generic/tkImage.c | |
parent | 73c017afb1b0e1964e40658c06778f8d6a6ad730 (diff) | |
parent | 0458372801c219f49668c4d8bc66406008375599 (diff) | |
download | tk-ce6721ee9864fc0df797cc68e36377e0cf7c4b4c.zip tk-ce6721ee9864fc0df797cc68e36377e0cf7c4b4c.tar.gz tk-ce6721ee9864fc0df797cc68e36377e0cf7c4b4c.tar.bz2 |
Fix [bb8041c239]: Call legacy Tk_ImageCreateProc using correct function pointer type. Thanks to Christopher Chavez.
Diffstat (limited to 'generic/tkImage.c')
-rw-r--r-- | generic/tkImage.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/generic/tkImage.c b/generic/tkImage.c index dc120ca..134ce8a 100644 --- a/generic/tkImage.c +++ b/generic/tkImage.c @@ -372,8 +372,17 @@ Tk_ImageObjCmd( args[objc] = NULL; } Tcl_Preserve(modelPtr); - if (typePtr->createProc(interp, name, objc, args, typePtr, - (Tk_ImageModel)modelPtr, &modelPtr->modelData) != TCL_OK){ + if (oldimage) { + typedef int (OldCreateProc)(Tcl_Interp*, char*, int, char**, + Tk_ImageType*, Tk_ImageModel, ClientData*); + i = ((OldCreateProc*)typePtr->createProc)(interp, + (char*)name, objc, (char**)args, typePtr, + (Tk_ImageModel)modelPtr, &modelPtr->modelData); + } else { + i = typePtr->createProc(interp, name, objc, args, typePtr, + (Tk_ImageModel)modelPtr, &modelPtr->modelData); + } + if (i != TCL_OK){ EventuallyDeleteImage(modelPtr, 0); Tcl_Release(modelPtr); if (oldimage) { |