use assertions instead of ignoring bogus arguments (#406)

instead of silently ignoring bogus arguments (i.e programming errors),
which can make debugging harder, it's better to assert them so that they
get caught faster in debug builds.

Reviewed-on: https://codeberg.org/nsxiv/nsxiv/pulls/406
Reviewed-by: explosion-mental <explosion-mental@noreply.codeberg.org>
This commit is contained in:
NRK 2023-01-28 10:27:40 +00:00
parent 6ffc64a04e
commit 01f3cf2e47
3 changed files with 9 additions and 13 deletions

View file

@ -21,6 +21,7 @@
#define INCLUDE_THUMBS_CONFIG
#include "config.h"
#include <assert.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
@ -40,8 +41,7 @@ static char* tns_cache_filepath(const char *filepath)
size_t len;
char *cfile = NULL;
if (*filepath != '/')
return NULL;
assert(*filepath == '/' && "filepath should be result of realpath(3)");
if (strncmp(filepath, cache_dir, strlen(cache_dir)) != 0) {
/* don't cache images inside the cache directory! */
@ -355,9 +355,7 @@ void tns_unload(tns_t *tns, int n)
{
thumb_t *t;
if (n < 0 || n >= *tns->cnt)
return;
assert(n >= 0 && n < *tns->cnt);
t = &tns->thumbs[n];
if (t->im != NULL) {
@ -371,9 +369,7 @@ static void tns_check_view(tns_t *tns, bool scrolled)
{
int r;
if (tns == NULL)
return;
assert(tns != NULL);
tns->first -= tns->first % tns->cols;
r = *tns->sel % tns->cols;

3
util.c
View file

@ -226,8 +226,7 @@ void construct_argv(char **argv, unsigned int len, ...)
for (i = 0; i < len; ++i)
argv[i] = va_arg(args, char *);
va_end(args);
if (argv[len-1] != NULL)
error(EXIT_FAILURE, 0, "argv not NULL terminated");
assert(argv[len-1] == NULL && "argv should be NULL terminated");
}
static int mkspawn_pipe(posix_spawn_file_actions_t *fa, const char *cmd, int *pfd, int dupidx)

View file

@ -22,6 +22,7 @@
#include "config.h"
#include "icon/data.h"
#include <assert.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
@ -450,10 +451,10 @@ static void win_draw_bar(win_t *win)
win_bar_t *l, *r;
XftDraw *d;
if ((l = &win->bar.l)->buf == NULL || (r = &win->bar.r)->buf == NULL)
return;
e = &win->env;
l = &win->bar.l;
r = &win->bar.r;
assert(l->buf != NULL && r->buf != NULL);
y = (win->bar.top ? 0 : win->h) + font->ascent + V_TEXT_PAD;
w = win->w - 2*H_TEXT_PAD;
d = XftDrawCreate(e->dpy, win->buf.pm, e->vis, e->cmap);