summaryrefslogtreecommitdiff
path: root/src/modules/loaders/loader_bmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/loaders/loader_bmp.c')
-rw-r--r--src/modules/loaders/loader_bmp.c54
1 files changed, 14 insertions, 40 deletions
diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c
index 21e07a0..9afdec6 100644
--- a/src/modules/loaders/loader_bmp.c
+++ b/src/modules/loaders/loader_bmp.c
@@ -180,7 +180,7 @@ load2(ImlibImage * im, int load_data)
fdata = mmap(NULL, im->fsize, PROT_READ, MAP_SHARED, fileno(im->fp), 0);
if (fdata == MAP_FAILED)
- return rc;
+ return LOAD_BADFILE;
fptr = fdata;
mm_init(fdata, im->fsize);
@@ -215,6 +215,8 @@ load2(ImlibImage * im, int load_data)
if (mm_read(&bih.header_size + 1, bih.header_size - 4))
goto quit;
+ rc = LOAD_BADIMAGE; /* Format accepted */
+
comp = BI_RGB;
amask = rmask = gmask = bmask = 0;
ashift1 = rshift1 = gshift1 = bshift1 = 0;
@@ -397,15 +399,12 @@ load2(ImlibImage * im, int load_data)
im->h = h;
if (!load_data)
- {
- rc = LOAD_SUCCESS;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_SUCCESS);
/* Load data */
if (!__imlib_AllocateData(im))
- goto quit;
+ QUIT_WITH_RC(LOAD_OOM);
fptr += bfh_offset;
@@ -441,10 +440,7 @@ load2(ImlibImage * im, int load_data)
ptr -= w * 2;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
}
@@ -549,10 +545,7 @@ load2(ImlibImage * im, int load_data)
progress_bc4:
if (im->lc && (x == w) &&
__imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
@@ -572,10 +565,7 @@ load2(ImlibImage * im, int load_data)
ptr -= w * 2;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
}
@@ -664,10 +654,7 @@ load2(ImlibImage * im, int load_data)
progress_bc8:
if (im->lc && (x == w) &&
__imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
@@ -684,10 +671,7 @@ load2(ImlibImage * im, int load_data)
buffer_ptr += skip;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
}
@@ -717,10 +701,7 @@ load2(ImlibImage * im, int load_data)
buffer_ptr += skip;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
@@ -741,10 +722,7 @@ load2(ImlibImage * im, int load_data)
buffer_ptr += skip;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
@@ -772,10 +750,7 @@ load2(ImlibImage * im, int load_data)
buffer_ptr += skip;
if (im->lc && __imlib_LoadProgressRows(im, h - y - 1, -1))
- {
- rc = LOAD_BREAK;
- goto quit;
- }
+ QUIT_WITH_RC(LOAD_BREAK);
}
break;
}
@@ -785,8 +760,7 @@ load2(ImlibImage * im, int load_data)
quit:
if (rc <= 0)
__imlib_FreeData(im);
- if (fdata != MAP_FAILED)
- munmap(fdata, im->fsize);
+ munmap(fdata, im->fsize);
return rc;
}