Эх сурвалжийг харах

Fixed #90 cppcheck warning and errors

Thanks to @codemeow I fixed some bugs and warnings found with
cppcheck. NOTE: it seems like all static analyzer fail to
detect the assert macro or hate combining assert ans if checks.
vurtun 9 жил өмнө
parent
commit
18b93fcc8a
2 өөрчлөгдсөн 10 нэмэгдсэн , 6 устгасан
  1. 3 0
      example/file_browser.c
  2. 7 6
      nuklear.h

+ 3 - 0
example/file_browser.c

@@ -231,8 +231,11 @@ dir_list(const char *dir, int return_subdirs, size_t *count)
                 if (!size) {
                     results = (char**)calloc(sizeof(char*), capacity);
                 } else if (size >= capacity) {
+                    void *old = results;
                     capacity = capacity * 2;
                     results = (char**)realloc(results, capacity * sizeof(char*));
+                    assert(results);
+                    if (!results) free(old);
                 }
                 p = str_duplicate(data->d_name);
                 results[size++] = p;

+ 7 - 6
nuklear.h

@@ -7771,7 +7771,7 @@ nk_tt__fill_active_edges_new(float *scanline, float *scanline_fill, int len,
         /* brute force every pixel */
         /* compute intersection points with top & bottom */
         NK_ASSERT(e->ey >= y_top);
-        if (!(e->fdx > 0) && (e->fdx < 0)) {
+        if (!(e->fdx > 0) && !(e->fdx < 0)) {
             float x0 = e->fx;
             if (x0 < len) {
                 if (x0 >= 0) {
@@ -9728,7 +9728,6 @@ nk_font_atlas_bake(struct nk_font_atlas *atlas, int *width, int *height,
 {
     int i = 0;
     void *tmp = 0;
-    const char *custom_data = "....";
     nk_size tmp_size, img_size;
 
     NK_ASSERT(width);
@@ -9744,6 +9743,7 @@ nk_font_atlas_bake(struct nk_font_atlas *atlas, int *width, int *height,
     if (!atlas->font_num)
         atlas->default_font = nk_font_atlas_add_default(atlas, 14.0f, 0);
 #endif
+    NK_ASSERT(atlas->font_num);
     if (!atlas->font_num) return 0;
 
     /* allocate temporary memory required for the baking process */
@@ -9752,7 +9752,7 @@ nk_font_atlas_bake(struct nk_font_atlas *atlas, int *width, int *height,
     NK_ASSERT(tmp);
     if (!tmp) goto failed;
 
-    /* allocate memory glyphs for all fonts */
+    /* allocate glyph memory for all fonts */
     atlas->glyphs = (struct nk_font_glyph*)
         atlas->alloc.alloc(atlas->alloc.userdata,0,
                 sizeof(struct nk_font_glyph) * (nk_size)atlas->glyph_count);
@@ -9773,10 +9773,11 @@ nk_font_atlas_bake(struct nk_font_atlas *atlas, int *width, int *height,
         goto failed;
 
     /* bake glyphs and custom white pixel into image */
+    {const char *custom_data = "....";
     nk_font_bake(atlas->pixel, *width, *height, tmp, tmp_size, atlas->glyphs,
         atlas->glyph_count, atlas->config, atlas->font_num);
     nk_font_bake_custom_data(atlas->pixel, *width, *height, atlas->custom,
-            custom_data, 2, 2, '.', 'X');
+            custom_data, 2, 2, '.', 'X');}
 
     /* convert alpha8 image into rgba32 image */
     if (fmt == NK_FONT_ATLAS_RGBA32) {
@@ -17223,11 +17224,11 @@ NK_API unsigned int
 nk_check_flags_text(struct nk_context *ctx, const char *text, int len,
     unsigned int flags, unsigned int value)
 {
-    int old_active, active;
+    int old_active;
     NK_ASSERT(ctx);
     NK_ASSERT(text);
     if (!ctx || !text) return flags;
-    old_active = active = (int)((flags & value) & value);
+    old_active = (int)((flags & value) & value);
     if (nk_check_text(ctx, text, len, old_active))
         flags |= value;
     else flags &= ~value;