diff --git a/src/bin/imlib2_load.c b/src/bin/imlib2_load.c index 38b0d99..91f1284 100644 --- a/src/bin/imlib2_load.c +++ b/src/bin/imlib2_load.c @@ -85,7 +85,13 @@ image_load_fd(const char *file, int *perr) ext = file; fd = open(file, O_RDONLY); - im = imlib_load_image_fde(ext, perr, fd); + if (fd < 0) + { + *perr = errno; + return NULL; + } + + im = imlib_load_image_fd(fd, ext); return im; } @@ -122,7 +128,7 @@ image_load_mem(const char *file, int *perr) if (fdata == MAP_FAILED) goto bail; - im = imlib_load_image_mem(ext, &err, fdata, st.st_size); + im = imlib_load_image_mem(ext, fdata, st.st_size); quit: if (fdata != MAP_FAILED) @@ -234,12 +240,12 @@ main(int argc, char **argv) for (cnt = 0; cnt < load_cnt; cnt++) { - err = -1000; + err = 0; switch (load_mode) { case LOAD_IMMED: - im = imlib_load_image_with_errno_return(argv[0], &err); + im = imlib_load_image_immediately(argv[0]); break; case LOAD_FROM_FD: im = image_load_fd(argv[0], &err); @@ -262,11 +268,10 @@ main(int argc, char **argv) if (!im) { - if (err > -1000) - fprintf(fout, "*** Error %d:'%s' loading image: '%s'\n", - err, imlib_strerror(err), argv[0]); - else - fprintf(fout, "*** Failed to load image: '%s'\n", argv[0]); + if (err == 0) + err = imlib_get_error(); + fprintf(fout, "*** Error %d:'%s' loading image: '%s'\n", + err, imlib_strerror(err), argv[0]); if (break_on_error & 2) goto quit; diff --git a/src/lib/Imlib2.h.in b/src/lib/Imlib2.h.in index 5445c0e..00f56ef 100644 --- a/src/lib/Imlib2.h.in +++ b/src/lib/Imlib2.h.in @@ -829,26 +829,6 @@ EAPI Imlib_Image imlib_load_image_with_errno_return(const char *file, */ EAPI Imlib_Image imlib_load_image_fd(int fd, const char *file); -/** - * Read an image from file descriptor with error return - * - * Same as imlib_load_image_fd() but with error return. - * - * On error @p error_return is set to the detail of the error. - * error values: - * 0: Success, - * positive: Regular errnos, - * negative: IMLIB_ERR_... values, see above - * - * @param file File name - * @param error_return The returned error - * @param fd Image file descriptor - * - * @return Image handle (NULL on failure) - */ -EAPI Imlib_Image imlib_load_image_fde(const char *file, int *error_return, - int fd); - /** * Read an image from memory * @@ -856,20 +836,13 @@ EAPI Imlib_Image imlib_load_image_fde(const char *file, int *error_return, * The image is loaded without deferred image data decoding and without * looking in the cache. * - * On error @p error_return is set to the detail of the error. - * error values: - * 0: Success, - * positive: Regular errnos, - * negative: IMLIB_ERR_... values, see above - * * @param file File name - * @param error_return The returned error * @param data Image data * @param size Image data size * * @return Image handle (NULL on failure) */ -EAPI Imlib_Image imlib_load_image_mem(const char *file, int *error_return, +EAPI Imlib_Image imlib_load_image_mem(const char *file, const void *data, size_t size); /** diff --git a/src/lib/api.c b/src/lib/api.c index 4607b5e..fa67dde 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -598,7 +598,7 @@ imlib_load_image_with_errno_return(const char *file, int *error_return) } EAPI Imlib_Image -imlib_load_image_fde(const char *file, int *err, int fd) +imlib_load_image_fd(int fd, const char *file) { Imlib_Image im; ImlibLoadArgs ila = { ILA0(ctx, 1, 1) }; @@ -619,20 +619,11 @@ imlib_load_image_fde(const char *file, int *err, int fd) close(fd); } - if (err) - *err = ctx->error; - return im; } EAPI Imlib_Image -imlib_load_image_fd(int fd, const char *file) -{ - return imlib_load_image_fde(file, NULL, fd); -} - -EAPI Imlib_Image -imlib_load_image_mem(const char *file, int *err, const void *data, size_t size) +imlib_load_image_mem(const char *file, const void *data, size_t size) { Imlib_Image im; ImlibLoadArgs ila = { ILA0(ctx, 1, 1) }; diff --git a/test/test_load.cpp b/test/test_load.cpp index 8f7b6c0..67e1a88 100644 --- a/test/test_load.cpp +++ b/test/test_load.cpp @@ -194,11 +194,12 @@ test_load(void) fd = open(fileo, O_RDONLY); D("Load fd %d '%s'\n", fd, fileo); snprintf(fileo, sizeof(fileo), ".%s", pfxs[i]); - im = imlib_load_image_fde(pfxs[i], &err, fd); + im = imlib_load_image_fd(fd, pfxs[i]); + err = imlib_get_error(); EXPECT_TRUE(im); + EXPECT_EQ(err, 0); if (im) image_free(im); - EXPECT_EQ(err, 0); err = close(fd); EXPECT_NE(err, 0); @@ -220,8 +221,10 @@ test_load(void) { D("Load mem[%d] %d '%s'\n", n, fd, fileo); snprintf(fileo, sizeof(fileo), ".%s", pfxs[i]); - im = imlib_load_image_mem(pfxs[i], &err, fdata, st.st_size); - EXPECT_TRUE(im) << "Load mem: " << fileo; + im = imlib_load_image_mem(pfxs[i], fdata, st.st_size); + err = imlib_get_error(); + EXPECT_TRUE(im); + EXPECT_EQ(err, 0); if (im) image_free(im); }