|
|
@ -96,7 +96,7 @@ RECENT REVISION HISTORY: |
|
|
|
Ryamond Barbiero Paul Du Bois Engin Manap github:snagar |
|
|
|
Ryamond Barbiero Paul Du Bois Engin Manap github:snagar |
|
|
|
Michaelangel007@github Oriol Ferrer Mesia Dale Weiler github:Zelex |
|
|
|
Michaelangel007@github Oriol Ferrer Mesia Dale Weiler github:Zelex |
|
|
|
Philipp Wiesemann Josh Tobin github:rlyeh github:grim210@github |
|
|
|
Philipp Wiesemann Josh Tobin github:rlyeh github:grim210@github |
|
|
|
Blazej Dariusz Roszkowski github:sammyhw |
|
|
|
Blazej Dariusz Roszkowski github:sammyhw GrayHatter@uTox |
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
@ -1761,7 +1761,7 @@ static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) |
|
|
|
// magnitude code followed by receive_extend code
|
|
|
|
// magnitude code followed by receive_extend code
|
|
|
|
int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); |
|
|
|
int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); |
|
|
|
int m = 1 << (magbits - 1); |
|
|
|
int m = 1 << (magbits - 1); |
|
|
|
if (k < m) k += (-1 << magbits) + 1; |
|
|
|
if (k < m) k += (~0U << magbits) + 1; |
|
|
|
// if the result is small enough, we can fit it in fast_ac table
|
|
|
|
// if the result is small enough, we can fit it in fast_ac table
|
|
|
|
if (k >= -128 && k <= 127) |
|
|
|
if (k >= -128 && k <= 127) |
|
|
|
fast_ac[i] = (stbi__int16) ((k << 8) + (run << 4) + (len + magbits)); |
|
|
|
fast_ac[i] = (stbi__int16) ((k << 8) + (run << 4) + (len + magbits)); |
|
|
@ -3594,6 +3594,7 @@ static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp |
|
|
|
|
|
|
|
|
|
|
|
static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) |
|
|
|
static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
(void)ri; // This unused warning is safe to ignore.
|
|
|
|
unsigned char* result; |
|
|
|
unsigned char* result; |
|
|
|
stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); |
|
|
|
stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); |
|
|
|
j->s = s; |
|
|
|
j->s = s; |
|
|
@ -4605,7 +4606,7 @@ static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) |
|
|
|
s->img_y = stbi__get32be(s); if (s->img_y > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)"); |
|
|
|
s->img_y = stbi__get32be(s); if (s->img_y > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)"); |
|
|
|
z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); |
|
|
|
z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); |
|
|
|
color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); |
|
|
|
comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); |
|
|
|
comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); |
|
|
|
filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); |
|
|
|
filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); |
|
|
|