From 3e3032cfa044268cee76735823755db274025021 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Tue, 13 Jun 2023 18:27:10 -0700 Subject: *: smattering of random small fixes to silence -Wall I thought the build was already using -Wall but that seems to not be the case, maybe got lost somewhere along the line or messed up in configure.ac After forcing a build with -Wall -Werror, these showed up. Fixed up in the obvious way, nothing too scary. --- src/drm_fb.c | 9 +++------ src/libs/din/din.c | 2 +- src/libs/ray/ray_light_emitter.h | 1 + src/libs/ray/ray_render_object_point.h | 2 +- src/libs/txt/txt.c | 4 ++-- src/main.c | 1 - src/mem_fb.c | 7 ------- src/modules/checkers/checkers.c | 5 ++++- src/modules/flui2d/flui2d.c | 2 +- src/modules/meta2d/v2f.h | 4 ++-- src/modules/meta2d/v3f.h | 6 +++--- src/modules/mixer/mixer.c | 2 +- src/modules/montage/montage.c | 10 ++++------ src/modules/plato/plato.c | 5 +++-- src/modules/ray/ray.c | 2 +- src/modules/rkt/rkt.c | 1 - src/modules/spiro/spiro.c | 1 - src/modules/swarm/swarm.c | 8 +++++--- src/modules/voronoi/v2f.h | 4 ++-- src/sdl_fb.c | 2 -- src/til.c | 7 +++---- src/til_settings.c | 3 ++- src/til_stream.c | 4 +++- 23 files changed, 42 insertions(+), 50 deletions(-) diff --git a/src/drm_fb.c b/src/drm_fb.c index 7c0aadc..de43bd9 100644 --- a/src/drm_fb.c +++ b/src/drm_fb.c @@ -149,7 +149,7 @@ static void free_strv(const char **strv) static int connector_desc_generator(const til_settings_t *settings, til_setup_t *setup_context, const til_setting_desc_t **res_desc) { drm_fb_setup_t *s = (drm_fb_setup_t *)setup_context; - const char **connectors; + const char **connectors = NULL; int r; assert(s); @@ -251,7 +251,7 @@ _out_con: drmModeFreeConnector(con); _out_fd: close(fd); -_out: + return r; } @@ -259,7 +259,7 @@ _out: static int mode_desc_generator(const til_settings_t *settings, til_setup_t *setup_context, const til_setting_desc_t **res_desc) { drm_fb_setup_t *s = (drm_fb_setup_t *)setup_context; - const char **modes; + const char **modes = NULL; int r; assert(s); @@ -357,9 +357,6 @@ static int drm_fb_init(const til_setup_t *setup, void **res_context) { drm_fb_setup_t *s = (drm_fb_setup_t *)setup; drm_fb_t *c; - const char *dev; - const char *connector; - const char *mode; drmModeEncoder *enc; int r; diff --git a/src/libs/din/din.c b/src/libs/din/din.c index 4290d41..b2c2823 100644 --- a/src/libs/din/din.c +++ b/src/libs/din/din.c @@ -18,7 +18,7 @@ typedef struct din_t { /* return random number between -1 and +1 */ static inline float randf(unsigned *seed) { - return 2.f / RAND_MAX * rand_r(seed) - 1.f; + return 2.f / ((float)RAND_MAX) * rand_r(seed) - 1.f; } diff --git a/src/libs/ray/ray_light_emitter.h b/src/libs/ray/ray_light_emitter.h index 3b5509e..4a1dce5 100644 --- a/src/libs/ray/ray_light_emitter.h +++ b/src/libs/ray/ray_light_emitter.h @@ -5,6 +5,7 @@ #include "ray_object_sphere.h" typedef enum ray_light_emitter_type_t { + RAY_LIGHT_EMITTER_TYPE_SENTINEL, /* TODO: this is fragile, the enum values align with ray_object_type_t so the object-specific .type can be assigned as object types to silence compiler warnings, without producing wrong type values in the ray_light_emitter_t.type. What should probably be done is splitting out the rudimentary objects into even simpler structs without a type member so we can have light variants and object variants each with their own enum typed type members... not now. */ RAY_LIGHT_EMITTER_TYPE_SPHERE, RAY_LIGHT_EMITTER_TYPE_POINT, } ray_light_emitter_type_t; diff --git a/src/libs/ray/ray_render_object_point.h b/src/libs/ray/ray_render_object_point.h index 52c6fd6..3479c22 100644 --- a/src/libs/ray/ray_render_object_point.h +++ b/src/libs/ray/ray_render_object_point.h @@ -31,7 +31,7 @@ static inline int ray_render_object_point_intersects_ray(ray_render_object_point static inline ray_3f_t ray_render_object_point_normal(ray_render_object_point_t *point, ray_3f_t *_point) { - ray_3f_t normal; + ray_3f_t normal = {}; return normal; } diff --git a/src/libs/txt/txt.c b/src/libs/txt/txt.c index e5eeec6..f087aeb 100644 --- a/src/libs/txt/txt.c +++ b/src/libs/txt/txt.c @@ -153,7 +153,7 @@ static int overlaps(int x1, int y1, unsigned w1, unsigned h1, int x2, int y2, un } -static inline void draw_char(til_fb_fragment_t *fragment, uint32_t color, int x, int y, char c) +static inline void draw_char(til_fb_fragment_t *fragment, uint32_t color, int x, int y, unsigned char c) { /* TODO: this could be optimized to skip characters with no overlap */ for (int i = 0; i < ASCII_HEIGHT; i++) { @@ -168,7 +168,7 @@ static inline void draw_char(til_fb_fragment_t *fragment, uint32_t color, int x, void txt_render_fragment(txt_t *txt, til_fb_fragment_t *fragment, uint32_t color, int x, int y, txt_align_t alignment) { int jx, jy, col, row; - char c, *str; + char *str; assert(txt); assert(fragment); diff --git a/src/main.c b/src/main.c index 8306b64..28d4b70 100644 --- a/src/main.c +++ b/src/main.c @@ -85,7 +85,6 @@ static int setup_video(const til_settings_t *settings, til_setting_t **res_setti video = til_settings_get_value_by_idx(settings, 0, &setting); if (!video || !setting->desc) { - til_setting_desc_t *desc; const char *values[] = { #ifdef HAVE_DRM "drm", diff --git a/src/mem_fb.c b/src/mem_fb.c index 2d8f936..2dfa5bb 100644 --- a/src/mem_fb.c +++ b/src/mem_fb.c @@ -99,9 +99,6 @@ static void mem_fb_shutdown(til_fb_t *fb, void *context) static int mem_fb_acquire(til_fb_t *fb, void *context, void *page) { - mem_fb_t *c = context; - mem_fb_page_t *p = page; - return 0; } @@ -135,7 +132,6 @@ static void * mem_fb_page_alloc(til_fb_t *fb, void *context, til_fb_fragment_t * static int mem_fb_page_free(til_fb_t *fb, void *context, void *page) { - mem_fb_t *c = context; mem_fb_page_t *p = page; free(p); @@ -146,9 +142,6 @@ static int mem_fb_page_free(til_fb_t *fb, void *context, void *page) static int mem_fb_page_flip(til_fb_t *fb, void *context, void *page) { - mem_fb_t *c = context; - mem_fb_page_t *p = page; - /* TODO: add a timer for supporting an fps setting? */ return 0; } diff --git a/src/modules/checkers/checkers.c b/src/modules/checkers/checkers.c index 5987b7d..3608582 100644 --- a/src/modules/checkers/checkers.c +++ b/src/modules/checkers/checkers.c @@ -225,7 +225,6 @@ static int checkers_fragmenter(til_module_context_t *context, const til_fb_fragm static void checkers_prepare_frame(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr, til_frame_plan_t *res_frame_plan) { checkers_context_t *ctxt = (checkers_context_t *)context; - til_fb_fragment_t *fragment = *fragment_ptr; /* XXX: note cpu_affinity is required when fill_module is used, to ensure module_contexts * have a stable relationship to fragnum. Otherwise the output would be unstable because the @@ -277,6 +276,8 @@ static void checkers_render_fragment(til_module_context_t *context, til_stream_t case CHECKERS_PATTERN_RANDOM: state = hash((context->seed + fragment->number) * 0x61C88647) & 0x1; break; + default: + assert(0); } /* now that state has been determined, set the frame size */ @@ -299,6 +300,8 @@ static void checkers_render_fragment(til_module_context_t *context, til_stream_t case CHECKERS_DYNAMICS_RANDOM: /* note: the big multiply here is just to get up out of the low bits */ state &= hash((context->seed + fragment->number) * 0x61C88647 + (unsigned)((float)ticks * ctxt->setup->rate)) & 0x1; break; + default: + assert(0); } if (fill == CHECKERS_FILL_RANDOM || fill == CHECKERS_FILL_MIXED) diff --git a/src/modules/flui2d/flui2d.c b/src/modules/flui2d/flui2d.c index 09869b3..147bb32 100644 --- a/src/modules/flui2d/flui2d.c +++ b/src/modules/flui2d/flui2d.c @@ -365,7 +365,7 @@ static void flui2d_render_fragment(til_module_context_t *context, til_stream_t * y1 = y0 + 1; for (int x = fragment->x; x < fragment->x + fragment->width; x++) { - float X, dens, dx0, dx1; + float X, dx0, dx1; int x0, x1; float r, g, b; diff --git a/src/modules/meta2d/v2f.h b/src/modules/meta2d/v2f.h index 088772d..8483f00 100644 --- a/src/modules/meta2d/v2f.h +++ b/src/modules/meta2d/v2f.h @@ -281,8 +281,8 @@ static inline v2f_t * v2f_trilerp(v2f_t *res, const v2f_t *aaa, const v2f_t *aba static inline v2f_t _v2f_rand(unsigned *seedp, const v2f_t *min, const v2f_t *max) { return (v2f_t){ - .x = min->x + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->x - min->x), - .y = min->y + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->y - min->y), + .x = min->x + (float)rand_r(seedp) * (1.f/(float)RAND_MAX) * (max->x - min->x), + .y = min->y + (float)rand_r(seedp) * (1.f/(float)RAND_MAX) * (max->y - min->y), }; } diff --git a/src/modules/meta2d/v3f.h b/src/modules/meta2d/v3f.h index d923ecc..b1d3f4c 100644 --- a/src/modules/meta2d/v3f.h +++ b/src/modules/meta2d/v3f.h @@ -300,9 +300,9 @@ static inline v3f_t * v3f_cross(v3f_t *res, const v3f_t *a, const v3f_t *b) static inline v3f_t _v3f_rand(unsigned *seedp, const v3f_t *min, const v3f_t *max) { return (v3f_t){ - .x = min->x + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->x - min->x), - .y = min->y + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->y - min->y), - .z = min->z + (float)rand_r(seedp) * (1.f/RAND_MAX) * (max->z - min->z), + .x = min->x + (float)rand_r(seedp) * (1.f/(float)RAND_MAX) * (max->x - min->x), + .y = min->y + (float)rand_r(seedp) * (1.f/(float)RAND_MAX) * (max->y - min->y), + .z = min->z + (float)rand_r(seedp) * (1.f/(float)RAND_MAX) * (max->z - min->z), }; } diff --git a/src/modules/mixer/mixer.c b/src/modules/mixer/mixer.c index 55234d3..1a2566c 100644 --- a/src/modules/mixer/mixer.c +++ b/src/modules/mixer/mixer.c @@ -113,7 +113,7 @@ static void mixer_destroy_context(til_module_context_t *context) static inline float randf(unsigned *seed) { - return 1.f / RAND_MAX * rand_r(seed); + return 1.f / ((float)RAND_MAX) * rand_r(seed); } static void mixer_render_fragment(til_module_context_t *context, til_stream_t *stream, unsigned ticks, unsigned cpu, til_fb_fragment_t **fragment_ptr) diff --git a/src/modules/montage/montage.c b/src/modules/montage/montage.c index 18e1252..c7c2eb0 100644 --- a/src/modules/montage/montage.c +++ b/src/modules/montage/montage.c @@ -158,11 +158,10 @@ static int montage_fragment_tile(const til_fb_fragment_t *fragment, unsigned til */ static int montage_fragmenter(til_module_context_t *context, const til_fb_fragment_t *fragment, unsigned number, til_fb_fragment_t *res_fragment) { - montage_context_t *ctxt = (montage_context_t *)context; - float root = sqrtf(((montage_setup_t *)context->setup)->n_tiles); - unsigned tile_width = fragment->frame_width / ceilf(root); /* screens are wide, always give excess to the width */ - unsigned tile_height = fragment->frame_height / rintf(root); /* only give to the height when fraction is >= .5f */ - int ret; + float root = sqrtf(((montage_setup_t *)context->setup)->n_tiles); + unsigned tile_width = fragment->frame_width / ceilf(root); /* screens are wide, always give excess to the width */ + unsigned tile_height = fragment->frame_height / rintf(root); /* only give to the height when fraction is >= .5f */ + int ret; /* XXX: this could all be more clever and make some tiles bigger than others to deal with fractional square roots, * but this is good enough for now considering the simplicity. @@ -252,7 +251,6 @@ static int montage_setup(const til_settings_t *settings, til_setting_t **res_set tiles_settings = (*res_setting)->value_as_nested_settings; { til_setting_t *tile_setting; - const char *layer; for (size_t i = 0; til_settings_get_value_by_idx(tiles_settings, i, &tile_setting); i++) { if (!tile_setting->value_as_nested_settings) { diff --git a/src/modules/plato/plato.c b/src/modules/plato/plato.c index 5551268..f43eda3 100644 --- a/src/modules/plato/plato.c +++ b/src/modules/plato/plato.c @@ -524,6 +524,8 @@ static inline m4f_t m4f_rotate(const m4f_t *m, const v3f_t *axis, float radians) return m4f_mult(m, &rotate); } +#if 0 +/* these aren't currently used, but may come in handy later */ /* this is a simple perpsective projection matrix taken from an opengl tutorial */ static inline m4f_t m4f_frustum(float bot, float top, float left, float right, float nnear, float ffar) @@ -565,7 +567,7 @@ static inline uint32_t color_to_uint32(v3f_t color) { return pixel; } - +#endif static void draw_line(til_fb_fragment_t *fragment, int x1, int y1, int x2, int y2) { @@ -742,7 +744,6 @@ static int plato_setup(const til_settings_t *settings, til_setting_t **res_setti if (res_setup) { plato_setup_t *setup; - int i; setup = til_setup_new(settings, sizeof(*setup), NULL); if (!setup) diff --git a/src/modules/ray/ray.c b/src/modules/ray/ray.c index 9ed023d..ea44491 100644 --- a/src/modules/ray/ray.c +++ b/src/modules/ray/ray.c @@ -86,7 +86,7 @@ static ray_object_t lights[] = { .type = RAY_OBJECT_TYPE_LIGHT, .brightness = 15.0f, .emitter = { - .point.type = RAY_LIGHT_EMITTER_TYPE_POINT, + .point.type = RAY_OBJECT_TYPE_POINT, .point.center = { .x = 3.0f, .y = 3.0f, .z = 3.0f }, .point.surface = { .color = { .x = 1.0f, .y = 1.0f, .z = 1.0f }, diff --git a/src/modules/rkt/rkt.c b/src/modules/rkt/rkt.c index 3a7b880..257671a 100644 --- a/src/modules/rkt/rkt.c +++ b/src/modules/rkt/rkt.c @@ -368,7 +368,6 @@ static int rkt_setup(const til_settings_t *settings, til_setting_t **res_setting scenes_settings = (*res_setting)->value_as_nested_settings; { til_setting_t *scene_setting; - const char *scene_module; for (size_t i = 0; til_settings_get_value_by_idx(scenes_settings, i, &scene_setting); i++) { if (!scene_setting->value_as_nested_settings) { diff --git a/src/modules/spiro/spiro.c b/src/modules/spiro/spiro.c index ef9e7b6..75f4438 100644 --- a/src/modules/spiro/spiro.c +++ b/src/modules/spiro/spiro.c @@ -34,7 +34,6 @@ typedef struct spiro_context_t { static til_module_context_t * spiro_create_context(const til_module_t *module, til_stream_t *stream, unsigned seed, unsigned ticks, unsigned n_cpus, til_setup_t *setup) { spiro_context_t *ctxt; - float z; ctxt = til_module_context_new(module, sizeof(spiro_context_t), stream, seed, ticks, n_cpus, setup); if (!ctxt) diff --git a/src/modules/swarm/swarm.c b/src/modules/swarm/swarm.c index 8e2d853..97a04d0 100644 --- a/src/modules/swarm/swarm.c +++ b/src/modules/swarm/swarm.c @@ -197,9 +197,11 @@ static til_module_context_t * swarm_create_context(const til_module_t *module, t static void swarm_update(swarm_context_t *ctxt, unsigned ticks) { v3f_t avg_direction = {}; - float avg_velocity = 0.f; v3f_t avg_center = {}; float wleader, wcenter, wdirection; + /* commented out since it's unused currently and upsets -Wall -Werror, but retained for potential future modifications + * float avg_velocity = 0.f; + */ { /* [0] = leader */ float r = M_PI * 2 * ((cosf((float)ticks * .001f) * .5f + .5f)); @@ -239,10 +241,10 @@ static void swarm_update(swarm_context_t *ctxt, unsigned ticks) avg_center = v3f_add(avg_center, b->position); avg_direction = v3f_add(avg_direction, b->direction); - avg_velocity += b->velocity; + /* avg_velocity += b->velocity; */ } - avg_velocity *= (1.f / (float)SWARM_SIZE); + /* avg_velocity *= (1.f / (float)SWARM_SIZE); */ avg_center = v3f_mult_scalar(avg_center, (1.f / (float)SWARM_SIZE)); avg_direction = v3f_mult_scalar(avg_direction, (1.f / (float)SWARM_SIZE)); v3f_normalize(&avg_direction); diff --git a/src/modules/voronoi/v2f.h b/src/modules/voronoi/v2f.h index 8f51ee0..3cef962 100644 --- a/src/modules/voronoi/v2f.h +++ b/src/modules/voronoi/v2f.h @@ -281,8 +281,8 @@ static inline v2f_t * v2f_trilerp(v2f_t *res, const v2f_t *aaa, const v2f_t *aba static inline v2f_t _v2f_rand(const v2f_t *min, const v2f_t *max) { return (v2f_t){ - .x = min->x + (float)rand() * (1.f/RAND_MAX) * (max->x - min->x), - .y = min->y + (float)rand() * (1.f/RAND_MAX) * (max->y - min->y), + .x = min->x + (float)rand() * (1.f/(float)RAND_MAX) * (max->x - min->x), + .y = min->y + (float)rand() * (1.f/(float)RAND_MAX) * (max->y - min->y), }; } diff --git a/src/sdl_fb.c b/src/sdl_fb.c index 2b0a605..d1e3cd5 100644 --- a/src/sdl_fb.c +++ b/src/sdl_fb.c @@ -196,7 +196,6 @@ static void sdl_fb_shutdown(til_fb_t *fb, void *context) static int sdl_fb_acquire(til_fb_t *fb, void *context, void *page) { sdl_fb_t *c = context; - sdl_fb_page_t *p = page; c->window = SDL_CreateWindow("rototiller", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, c->width, c->height, c->flags); if (!c->window) @@ -254,7 +253,6 @@ static void * sdl_fb_page_alloc(til_fb_t *fb, void *context, til_fb_fragment_t * static int sdl_fb_page_free(til_fb_t *fb, void *context, void *page) { - sdl_fb_t *c = context; sdl_fb_page_t *p = page; SDL_FreeSurface(p->surface); diff --git a/src/til.c b/src/til.c index e4df34e..fd9b167 100644 --- a/src/til.c +++ b/src/til.c @@ -467,10 +467,9 @@ int til_module_setup(const til_settings_t *settings, til_setting_t **res_setting name = til_settings_get_value_by_idx(settings, 0, &setting); if (!name || !setting->desc) { - const char *values[nelems(modules) + 1] = {}; - const char *annotations[nelems(modules) + 1] = {}; - til_setting_desc_t *desc; - int r; + const char *values[nelems(modules) + 1] = {}; + const char *annotations[nelems(modules) + 1] = {}; + int r; for (unsigned i = 0, j = 0; i < nelems(modules); i++) { /* XXX: This only skips experimental modules when no module setting was pre-specified, diff --git a/src/til_settings.c b/src/til_settings.c index fe4546b..2985635 100644 --- a/src/til_settings.c +++ b/src/til_settings.c @@ -85,7 +85,6 @@ til_settings_t * til_settings_new(const char *prefix, const til_settings_t *pare const char *p; til_settings_t *settings; til_str_t *value_str; - char *value_buf; assert(label); @@ -719,4 +718,6 @@ int til_settings_fprint_path(const til_settings_t *settings, FILE *out) r = -EPIPE; free(buf); + + return r; } diff --git a/src/til_stream.c b/src/til_stream.c index e04f807..c24f239 100644 --- a/src/til_stream.c +++ b/src/til_stream.c @@ -273,7 +273,7 @@ int til_stream_tap(til_stream_t *stream, const void *owner, const void *owner_fo void til_stream_untap_owner(til_stream_t *stream, const void *owner) { for (int i = 0; i < TIL_STREAM_PIPE_BUCKETS_COUNT; i++) { - for (til_stream_pipe_t *p = stream->pipe_buckets[i], *p_next, *p_prev; p != NULL; p = p_next) { + for (til_stream_pipe_t *p = stream->pipe_buckets[i], *p_next, *p_prev = NULL; p != NULL; p = p_next) { p_next = p->next; if (p->owner == owner || p->driving_tap->owner == owner) { @@ -682,6 +682,8 @@ static int til_stream_fprint_module_context_cb(void *arg, til_stream_module_cont for (size_t i = 0; i < n_module_contexts; i++) fprintf(out, "%s{rc=%u, n_cpus=%u}", i ? ", " : " ", contexts[i]->refcount, contexts[i]->n_cpus); fprintf(out, "\n"); + + return 0; } -- cgit v1.2.1