diff options
author | Kim Woelders <kim@woelders.dk> | 2021-04-11 20:12:13 +0200 |
---|---|---|
committer | Kim Woelders <kim@woelders.dk> | 2021-04-16 17:15:06 +0200 |
commit | e82a5997ecf595ceb1ede964337733beb47cb94c (patch) | |
tree | 8e322c603bcc81d5f9c43165e89d789e7d1e099a | |
parent | 6f4dc94cc45c937c902a4cf3619febdb8bac16cd (diff) | |
download | imlib2-e82a5997ecf595ceb1ede964337733beb47cb94c.tar.gz |
Fix clang-analyzer warnings - lib (mostly trivial)
-rw-r--r-- | src/lib/api.c | 1 | ||||
-rw-r--r-- | src/lib/blend.c | 4 | ||||
-rw-r--r-- | src/lib/file.c | 3 | ||||
-rw-r--r-- | src/lib/font_draw.c | 1 | ||||
-rw-r--r-- | src/lib/font_main.c | 14 | ||||
-rw-r--r-- | src/lib/grad.c | 26 | ||||
-rw-r--r-- | src/lib/rgbadraw.c | 86 | ||||
-rw-r--r-- | src/lib/rotate.c | 2 | ||||
-rw-r--r-- | src/lib/scale.c | 10 | ||||
-rw-r--r-- | src/lib/script.c | 17 |
10 files changed, 89 insertions, 75 deletions
diff --git a/src/lib/api.c b/src/lib/api.c index 40e1658..3f65bba 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -3673,6 +3673,7 @@ imlib_text_get_location_at_index(const char *text, int index, __imlib_font_query_char_coords(fn, text, index, &cx, &cy, &cw, &ch); + w = h = 0; imlib_get_text_size(text, &w, &h); switch (ctx->direction) diff --git a/src/lib/blend.c b/src/lib/blend.c index 7566de2..76b6d04 100644 --- a/src/lib/blend.c +++ b/src/lib/blend.c @@ -1894,10 +1894,6 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst, if ((dw < 1) || (dh < 1)) return; } - if (psx != dx) - sx += ((dx - psx) * ssw) / abs(ddw); - if (psy != dy) - sy += ((dy - psy) * ssh) / abs(ddh); if (psw != dw) sw = (sw * dw) / psw; if (psh != dh) diff --git a/src/lib/file.c b/src/lib/file.c index 7dcd219..4f7c43a 100644 --- a/src/lib/file.c +++ b/src/lib/file.c @@ -210,7 +210,8 @@ __imlib_FileDir(const char *dir, int *num) return NULL; } /* count # of entries in dir (worst case) */ - for (dirlen = 0; (dp = readdir(dirp)); dirlen++); + for (dirlen = 0; readdir(dirp) != NULL; dirlen++) + ; if (!dirlen) { closedir(dirp); diff --git a/src/lib/font_draw.c b/src/lib/font_draw.c index ea49e14..9756f9c 100644 --- a/src/lib/font_draw.c +++ b/src/lib/font_draw.c @@ -97,6 +97,7 @@ __imlib_render_str(ImlibImage * im, ImlibFont * fn, int drx, int dry, ascent = __imlib_font_max_ascent_get(fn); + nx = ny = 0; __imlib_font_draw(im2, pixel, fn, 0, ascent, text, &nx, &ny, 0, 0, w, h); /* OK, now we have small ImlibImage with text rendered, diff --git a/src/lib/font_main.c b/src/lib/font_main.c index ad47167..e3b6eb5 100644 --- a/src/lib/font_main.c +++ b/src/lib/font_main.c @@ -360,18 +360,16 @@ __imlib_hash_free(Imlib_Hash * hash) if (!hash) return; + size = __imlib_hash_size(hash); for (i = 0; i < size; i++) { - while (hash->buckets[i]) - { - Imlib_Hash_El *el; + Imlib_Hash_El *el, *el_next; - el = (Imlib_Hash_El *) hash->buckets[i]; - if (el->key) - free(el->key); - hash->buckets[i] = - __imlib_object_list_remove(hash->buckets[i], el); + for (el = (Imlib_Hash_El *) hash->buckets[i]; el; el = el_next) + { + el_next = (Imlib_Hash_El *) el->_list_data.next; + free(el->key); free(el); } } diff --git a/src/lib/grad.c b/src/lib/grad.c index 5686a9e..b3df3a3 100644 --- a/src/lib/grad.c +++ b/src/lib/grad.c @@ -94,7 +94,7 @@ __imlib_MapRange(ImlibRange * rg, int len) for (p = rg->color; p; p = p->next) ll += p->distance; map = malloc(len * sizeof(DATA32)); - pmap = malloc(ll * sizeof(DATA32)); + pmap = calloc(ll, sizeof(DATA32)); i = 0; for (p = rg->color; p; p = p->next) { @@ -166,7 +166,7 @@ __imlib_MapHsvaRange(ImlibRange * rg, int len) for (p = rg->color; p; p = p->next) ll += p->distance; map = malloc(len * sizeof(DATA32)); - pmap = malloc(ll * sizeof(DATA32)); + pmap = calloc(ll, sizeof(DATA32)); i = 0; for (p = rg->color; p; p = p->next) { @@ -286,15 +286,23 @@ __imlib_DrawGradient(ImlibImage * im, int x, int y, int w, int h, yoff += (y - py); } + vlut = NULL; + map = NULL; + hlut = malloc(sizeof(int) * ww); + if (!hlut) + goto quit; vlut = malloc(sizeof(int) * hh); + if (!vlut) + goto quit; + if (ww > hh) len = ww * 16; else len = hh * 16; map = __imlib_MapRange(rg, len); if (!map) - return; + goto quit; xx = (int)(32 * sin(((angle + 180) * 2 * 3.141592654) / 360)); yy = -(int)(32 * cos(((angle + 180) * 2 * 3.141592654) / 360)); @@ -423,6 +431,7 @@ __imlib_DrawGradient(ImlibImage * im, int x, int y, int w, int h, break; } + quit: free(vlut); free(hlut); free(map); @@ -479,15 +488,23 @@ __imlib_DrawHsvaGradient(ImlibImage * im, int x, int y, int w, int h, yoff += (y - py); } + vlut = NULL; + map = NULL; + hlut = malloc(sizeof(int) * ww); + if (!hlut) + goto quit; vlut = malloc(sizeof(int) * hh); + if (!vlut) + goto quit; + if (ww > hh) len = ww * 16; else len = hh * 16; map = __imlib_MapHsvaRange(rg, len); if (!map) - return; + goto quit; xx = (int)(32 * sin(((angle + 180) * 2 * 3.141592654) / 360)); yy = -(int)(32 * cos(((angle + 180) * 2 * 3.141592654) / 360)); @@ -616,6 +633,7 @@ __imlib_DrawHsvaGradient(ImlibImage * im, int x, int y, int w, int h, break; } + quit: free(vlut); free(hlut); free(map); diff --git a/src/lib/rgbadraw.c b/src/lib/rgbadraw.c index 7a4e932..670ebcd 100644 --- a/src/lib/rgbadraw.c +++ b/src/lib/rgbadraw.c @@ -94,7 +94,6 @@ __imlib_FlipImageDiagonal(ImlibImage * im, int direction) int x, y, w, hw, tmp; data = malloc(im->w * im->h * sizeof(DATA32)); - from = im->data; w = im->h; im->h = im->w; im->w = w; @@ -143,6 +142,7 @@ __imlib_FlipImageDiagonal(ImlibImage * im, int direction) hw = hw - 1; break; } + from = im->data; for (x = im->w; --x >= 0;) { @@ -253,53 +253,55 @@ __imlib_SharpenImage(ImlibImage * im, int rad) DATA32 *data, *p1, *p2; int a, r, g, b, x, y; - data = malloc(im->w * im->h * sizeof(DATA32)); if (rad == 0) return; - else + + data = malloc(im->w * im->h * sizeof(DATA32)); + if (!data) + return; + + for (y = 1; y < (im->h - 1); y++) { - for (y = 1; y < (im->h - 1); y++) + p1 = im->data + 1 + (y * im->w); + p2 = data + 1 + (y * im->w); + for (x = 1; x < (im->w - 1); x++) { - p1 = im->data + 1 + (y * im->w); - p2 = data + 1 + (y * im->w); - for (x = 1; x < (im->w - 1); x++) - { - b = (int)((p1[0]) & 0xff) * 5; - g = (int)((p1[0] >> 8) & 0xff) * 5; - r = (int)((p1[0] >> 16) & 0xff) * 5; - a = (int)((p1[0] >> 24) & 0xff) * 5; - b -= (int)((p1[-1]) & 0xff); - g -= (int)((p1[-1] >> 8) & 0xff); - r -= (int)((p1[-1] >> 16) & 0xff); - a -= (int)((p1[-1] >> 24) & 0xff); - b -= (int)((p1[1]) & 0xff); - g -= (int)((p1[1] >> 8) & 0xff); - r -= (int)((p1[1] >> 16) & 0xff); - a -= (int)((p1[1] >> 24) & 0xff); - b -= (int)((p1[-im->w]) & 0xff); - g -= (int)((p1[-im->w] >> 8) & 0xff); - r -= (int)((p1[-im->w] >> 16) & 0xff); - a -= (int)((p1[-im->w] >> 24) & 0xff); - b -= (int)((p1[im->w]) & 0xff); - g -= (int)((p1[im->w] >> 8) & 0xff); - r -= (int)((p1[im->w] >> 16) & 0xff); - a -= (int)((p1[im->w] >> 24) & 0xff); - - a = (a & ((~a) >> 16)); - a = ((a | ((a & 256) - ((a & 256) >> 8)))); - r = (r & ((~r) >> 16)); - r = ((r | ((r & 256) - ((r & 256) >> 8)))); - g = (g & ((~g) >> 16)); - g = ((g | ((g & 256) - ((g & 256) >> 8)))); - b = (b & ((~b) >> 16)); - b = ((b | ((b & 256) - ((b & 256) >> 8)))); - - *p2 = PIXEL_ARGB(a, r, g, b); - p2++; - p1++; - } + b = (int)((p1[0]) & 0xff) * 5; + g = (int)((p1[0] >> 8) & 0xff) * 5; + r = (int)((p1[0] >> 16) & 0xff) * 5; + a = (int)((p1[0] >> 24) & 0xff) * 5; + b -= (int)((p1[-1]) & 0xff); + g -= (int)((p1[-1] >> 8) & 0xff); + r -= (int)((p1[-1] >> 16) & 0xff); + a -= (int)((p1[-1] >> 24) & 0xff); + b -= (int)((p1[1]) & 0xff); + g -= (int)((p1[1] >> 8) & 0xff); + r -= (int)((p1[1] >> 16) & 0xff); + a -= (int)((p1[1] >> 24) & 0xff); + b -= (int)((p1[-im->w]) & 0xff); + g -= (int)((p1[-im->w] >> 8) & 0xff); + r -= (int)((p1[-im->w] >> 16) & 0xff); + a -= (int)((p1[-im->w] >> 24) & 0xff); + b -= (int)((p1[im->w]) & 0xff); + g -= (int)((p1[im->w] >> 8) & 0xff); + r -= (int)((p1[im->w] >> 16) & 0xff); + a -= (int)((p1[im->w] >> 24) & 0xff); + + a = (a & ((~a) >> 16)); + a = ((a | ((a & 256) - ((a & 256) >> 8)))); + r = (r & ((~r) >> 16)); + r = ((r | ((r & 256) - ((r & 256) >> 8)))); + g = (g & ((~g) >> 16)); + g = ((g | ((g & 256) - ((g & 256) >> 8)))); + b = (b & ((~b) >> 16)); + b = ((b | ((b & 256) - ((b & 256) >> 8)))); + + *p2 = PIXEL_ARGB(a, r, g, b); + p2++; + p1++; } } + __imlib_ReplaceData(im, data); } diff --git a/src/lib/rotate.c b/src/lib/rotate.c index 65ea28b..4b9b7b9 100644 --- a/src/lib/rotate.c +++ b/src/lib/rotate.c @@ -45,7 +45,7 @@ /*\ One colour, alpha between one value and three zeroes \*/ #define INTERP_A000(dest, v, f1, f2) do { \ *(dest) = *(v); \ - A_VAL(dest) = (A_VAL(dest) * \ + A_VAL(dest) = (A_VAL(v) * \ ((f1) & _ROTATE_PREC_BITS) * ((f2) & _ROTATE_PREC_BITS)) >> (2 * _ROTATE_PREC); \ } while (0) diff --git a/src/lib/scale.c b/src/lib/scale.c index 9c63ffc..a94f13c 100644 --- a/src/lib/scale.c +++ b/src/lib/scale.c @@ -54,7 +54,7 @@ __imlib_CalcYPoints(DATA32 * src, int sw, int sh, int dh, int b1, int b2) if (dh > (b1 + b2)) { val = (b1 << 16); - inc = ((sh - b1 - b2) << 16) / (dh - b1 - b2); + inc = ((sh - b1 - b2) << 16) / (dh - (b1 + b2)); for (i = 0; i < (dh - b1 - b2); i++) { p[j++] = src + ((val >> 16) * sw); @@ -112,7 +112,7 @@ __imlib_CalcXPoints(int sw, int dw, int b1, int b2) if (dw > (b1 + b2)) { val = (b1 << 16); - inc = ((sw - b1 - b2) << 16) / (dw - b1 - b2); + inc = ((sw - b1 - b2) << 16) / (dw - (b1 + b2)); for (i = 0; i < (dw - b1 - b2); i++) { p[j++] = (val >> 16); @@ -193,8 +193,8 @@ __imlib_CalcApoints(int s, int d, int b1, int b2, int up) { int ss, dd, ap, Cp; - ss = s - b1 - b2; - dd = d - b1 - b2; + ss = s - (b1 + b2); + dd = d - (b1 + b2); val = 0; inc = (ss << 16) / dd; Cp = ((dd << 14) / ss) + 1; @@ -868,7 +868,6 @@ __imlib_ScaleAARGBA(ImlibScaleInfo * isi, DATA32 * dest, int dxx, int dyy, if (j > 0) { pix = sptr; - sptr += sow; rx = (R_VAL(pix) * xap) >> 9; gx = (G_VAL(pix) * xap) >> 9; bx = (B_VAL(pix) * xap) >> 9; @@ -1454,7 +1453,6 @@ __imlib_ScaleAARGB(ImlibScaleInfo * isi, DATA32 * dest, int dxx, int dyy, if (j > 0) { pix = sptr; - sptr += sow; rx = (R_VAL(pix) * xap) >> 9; gx = (G_VAL(pix) * xap) >> 9; bx = (B_VAL(pix) * xap) >> 9; diff --git a/src/lib/script.c b/src/lib/script.c index be34944..9072ff4 100644 --- a/src/lib/script.c +++ b/src/lib/script.c @@ -59,15 +59,15 @@ static char * __imlib_copystr(const char *str, int start, int end) { int i = 0; - char *rstr = calloc(1024, sizeof(char)); + char *rstr; - if (start <= end && end < (int)strlen(str)) - { - for (i = start; i <= end; i++) - rstr[i - start] = str[i]; - return rstr; - } - return NULL; + if (start > end || end >= (int)strlen(str)) + return NULL; + + rstr = calloc(1024, sizeof(char)); + for (i = start; i <= end; i++) + rstr[i - start] = str[i]; + return rstr; } static void @@ -267,7 +267,6 @@ __imlib_script_parse(ImlibImage * im, const char *script, va_list param_list) } start = 0; - i = 0; script_len = strlen(scriptbuf); for (i = 0; i < script_len; i++) { |