parent
6c7ee61f14
commit
d75f8bd5b0
|
@ -4120,7 +4120,7 @@ static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
|
||||||
if (s >= 16) return -1; // invalid code!
|
if (s >= 16) return -1; // invalid code!
|
||||||
// code size is s, so:
|
// code size is s, so:
|
||||||
b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s];
|
b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s];
|
||||||
if (b >= sizeof (z->size)) return -1; // some data was corrupt somewhere!
|
if ((unsigned int)b >= sizeof (z->size)) return -1; // some data was corrupt somewhere!
|
||||||
if (z->size[b] != s) return -1; // was originally an assert, but report failure instead.
|
if (z->size[b] != s) return -1; // was originally an assert, but report failure instead.
|
||||||
a->code_buffer >>= s;
|
a->code_buffer >>= s;
|
||||||
a->num_bits -= s;
|
a->num_bits -= s;
|
||||||
|
@ -6775,8 +6775,6 @@ static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y,
|
||||||
stbi_uc *two_back = 0;
|
stbi_uc *two_back = 0;
|
||||||
stbi__gif g;
|
stbi__gif g;
|
||||||
int stride;
|
int stride;
|
||||||
int out_size = 0;
|
|
||||||
int delays_size = 0;
|
|
||||||
memset(&g, 0, sizeof(g));
|
memset(&g, 0, sizeof(g));
|
||||||
if (delays) {
|
if (delays) {
|
||||||
*delays = 0;
|
*delays = 0;
|
||||||
|
@ -6793,7 +6791,7 @@ static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y,
|
||||||
stride = g.w * g.h * 4;
|
stride = g.w * g.h * 4;
|
||||||
|
|
||||||
if (out) {
|
if (out) {
|
||||||
void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride );
|
void *tmp = (stbi_uc*) STBI_REALLOC( out, layers * stride );
|
||||||
if (NULL == tmp) {
|
if (NULL == tmp) {
|
||||||
STBI_FREE(g.out);
|
STBI_FREE(g.out);
|
||||||
STBI_FREE(g.history);
|
STBI_FREE(g.history);
|
||||||
|
@ -6802,19 +6800,15 @@ static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out = (stbi_uc*) tmp;
|
out = (stbi_uc*) tmp;
|
||||||
out_size = layers * stride;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (delays) {
|
if (delays) {
|
||||||
*delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers );
|
*delays = (int*) STBI_REALLOC( *delays, sizeof(int) * layers );
|
||||||
delays_size = layers * sizeof(int);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
out = (stbi_uc*)stbi__malloc( layers * stride );
|
out = (stbi_uc*)stbi__malloc( layers * stride );
|
||||||
out_size = layers * stride;
|
|
||||||
if (delays) {
|
if (delays) {
|
||||||
*delays = (int*) stbi__malloc( layers * sizeof(int) );
|
*delays = (int*) stbi__malloc( layers * sizeof(int) );
|
||||||
delays_size = layers * sizeof(int);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
memcpy( out + ((layers - 1) * stride), u, stride );
|
memcpy( out + ((layers - 1) * stride), u, stride );
|
||||||
|
|
Loading…
Reference in New Issue