summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tkImgPhoto.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/generic/tkImgPhoto.c b/generic/tkImgPhoto.c
index 9e3c80f..03c5c9e 100644
--- a/generic/tkImgPhoto.c
+++ b/generic/tkImgPhoto.c
@@ -576,9 +576,6 @@ ImgPhotoCmd(
if ((options.fromX2 > block.width) || (options.fromY2 > block.height)
|| (options.fromX2 > block.width)
|| (options.fromY2 > block.height)) {
- if (options.background) {
- Tk_FreeColor(options.background);
- }
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"coordinates for -from option extend outside source image",
-1));
@@ -655,9 +652,6 @@ ImgPhotoCmd(
if (options.options & OPT_SHRINK) {
if (ImgPhotoSetSize(modelPtr, options.toX2,
options.toY2) != TCL_OK) {
- if (options.background) {
- Tk_FreeColor(options.background);
- }
Tcl_SetObjResult(interp, Tcl_NewStringObj(
TK_PHOTO_ALLOC_FAILURE_MESSAGE, -1));
Tcl_SetErrorCode(interp, "TK", "MALLOC", NULL);
@@ -668,9 +662,6 @@ ImgPhotoCmd(
Tk_ImageChanged(modelPtr->tkMaster, 0, 0, 0, 0,
modelPtr->width, modelPtr->height);
}
- if (options.background) {
- Tk_FreeColor(options.background);
- }
return result;
case PHOTO_DATA: {
@@ -695,6 +686,9 @@ ImgPhotoCmd(
}
if ((options.name != NULL) || (index < objc)) {
Tcl_WrongNumArgs(interp, 2, objv, "?-option value ...?");
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}
if ((options.fromX > modelPtr->width)
@@ -704,6 +698,9 @@ ImgPhotoCmd(
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"coordinates for -from option extend outside image", -1));
Tcl_SetErrorCode(interp, "TK", "IMAGE", "PHOTO", "BAD_FROM", NULL);
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}
@@ -755,6 +752,9 @@ ImgPhotoCmd(
(matched ? "not supported" : "unknown")));
Tcl_SetErrorCode(interp, "TK", "LOOKUP", "PHOTO_FORMAT",
Tcl_GetString(options.format), NULL);
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}
} else {
@@ -1331,6 +1331,9 @@ ImgPhotoCmd(
}
if ((options.name == NULL) || (index < objc)) {
Tcl_WrongNumArgs(interp, 2, objv, "fileName ?-option value ...?");
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}
if ((options.fromX > modelPtr->width)
@@ -1340,6 +1343,9 @@ ImgPhotoCmd(
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"coordinates for -from option extend outside image", -1));
Tcl_SetErrorCode(interp, "TK", "IMAGE", "PHOTO", "BAD_FROM", NULL);
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}
@@ -1419,6 +1425,9 @@ ImgPhotoCmd(
}
Tcl_SetErrorCode(interp, "TK", "LOOKUP", "PHOTO_FORMAT",
fmtString, NULL);
+ if (options.background) {
+ Tk_FreeColor(options.background);
+ }
return TCL_ERROR;
}