kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=01d76b56a0aecb292a52bff19104d4a89532eea5
commit 01d76b56a0aecb292a52bff19104d4a89532eea5 Author: Kim Woelders <[email protected]> Date: Sat Dec 4 07:37:14 2021 +0100 Drop context image save/restore around __imlib_Load/SaveImage() calls Should not be necessary. --- src/lib/api.c | 54 ++++++++++++++++++++++++------------------------------ 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/src/lib/api.c b/src/lib/api.c index 149bdfb..6485c1e 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -1296,16 +1296,15 @@ imlib_get_best_visual(Display * display, int screen, int *depth_return) EAPI Imlib_Image imlib_load_image(const char *file) { - Imlib_Image im = NULL; - Imlib_Image prev_ctxt_image; + Imlib_Image im; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image", "file", file, NULL); - prev_ctxt_image = ctx->image; + im = __imlib_LoadImage(file, NULL, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 0, 0, NULL); - ctx->image = prev_ctxt_image; + return (Imlib_Image) im; } @@ -1321,17 +1320,16 @@ imlib_load_image(const char *file) EAPI Imlib_Image imlib_load_image_immediately(const char *file) { - Imlib_Image im = NULL; - Imlib_Image prev_ctxt_image; + Imlib_Image im; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image_immediately", "file", file, NULL); - prev_ctxt_image = ctx->image; + im = __imlib_LoadImage(file, NULL, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 1, 0, NULL); - ctx->image = prev_ctxt_image; + return (Imlib_Image) im; } @@ -1345,17 +1343,16 @@ imlib_load_image_immediately(const char *file) EAPI Imlib_Image imlib_load_image_without_cache(const char *file) { - Imlib_Image im = NULL; - Imlib_Image prev_ctxt_image; + Imlib_Image im; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image_without_cache", "file", file, NULL); - prev_ctxt_image = ctx->image; + im = __imlib_LoadImage(file, NULL, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 0, 1, NULL); - ctx->image = prev_ctxt_image; + return (Imlib_Image) im; } @@ -1370,17 +1367,16 @@ imlib_load_image_without_cache(const char *file) EAPI Imlib_Image imlib_load_image_immediately_without_cache(const char *file) { - Imlib_Image im = NULL; - Imlib_Image prev_ctxt_image; + Imlib_Image im; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image_immediately_without_cache", "file", file, NULL); - prev_ctxt_image = ctx->image; + im = __imlib_LoadImage(file, NULL, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 1, 1, NULL); - ctx->image = prev_ctxt_image; + return (Imlib_Image) im; } @@ -1400,26 +1396,26 @@ imlib_load_image_immediately_without_cache(const char *file) EAPI Imlib_Image imlib_load_image_fd(int fd, const char *file) { - Imlib_Image im = NULL; - Imlib_Image prev_ctxt_image; + Imlib_Image im; FILE *fp; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image_fd", "file", file, NULL); + fp = fdopen(fd, "rb"); if (fp) { - prev_ctxt_image = ctx->image; im = __imlib_LoadImage(file, fp, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 1, 1, NULL); fclose(fp); - ctx->image = prev_ctxt_image; } else { + im = NULL; close(fd); } + return (Imlib_Image) im; } @@ -1436,18 +1432,17 @@ EAPI Imlib_Image imlib_load_image_with_error_return(const char *file, Imlib_Load_Error * error_return) { - Imlib_Image im = NULL; + Imlib_Image im; ImlibLoadError er; - Imlib_Image prev_ctxt_image; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER_RETURN("imlib_load_image_with_error_return", "file", file, NULL); - prev_ctxt_image = ctx->image; + im = __imlib_LoadImage(file, NULL, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, 1, 0, &er); - ctx->image = prev_ctxt_image; + if (im) *error_return = IMLIB_LOAD_ERROR_NONE; else @@ -1457,6 +1452,7 @@ imlib_load_image_with_error_return(const char *file, else *error_return = (Imlib_Load_Error) er; } + return im; } @@ -4592,18 +4588,17 @@ EAPI void imlib_save_image(const char *filename) { ImlibImage *im; - Imlib_Image prev_ctxt_image; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER("imlib_save_image", "image", ctx->image); CHECK_PARAM_POINTER("imlib_save_image", "filename", filename); CAST_IMAGE(im, ctx->image); + if (__imlib_LoadImageData(im)) return; - prev_ctxt_image = ctx->image; + __imlib_SaveImage(im, filename, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, NULL); - ctx->image = prev_ctxt_image; } /** @@ -4618,7 +4613,6 @@ imlib_save_image_with_error_return(const char *filename, Imlib_Load_Error * error_return) { ImlibImage *im; - Imlib_Image prev_ctxt_image; CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER("imlib_save_image_with_error_return", "image", @@ -4628,12 +4622,12 @@ imlib_save_image_with_error_return(const char *filename, CHECK_PARAM_POINTER("imlib_save_image_with_error_return", "error_return", error_return); CAST_IMAGE(im, ctx->image); + if (__imlib_LoadImageData(im)) return; - prev_ctxt_image = ctx->image; + __imlib_SaveImage(im, filename, (ImlibProgressFunction) ctx->progress_func, ctx->progress_granularity, error_return); - ctx->image = prev_ctxt_image; } /** --
