summaryrefslogtreecommitdiffstats
path: root/generic/tkImage.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2023-10-28 08:18:24 (GMT)
committerfvogel <fvogelnew1@free.fr>2023-10-28 08:18:24 (GMT)
commitce6721ee9864fc0df797cc68e36377e0cf7c4b4c (patch)
tree9b7274789e0784400cea0deed5b1b0309b404dd2 /generic/tkImage.c
parent73c017afb1b0e1964e40658c06778f8d6a6ad730 (diff)
parent0458372801c219f49668c4d8bc66406008375599 (diff)
downloadtk-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.c13
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) {