aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2023-01-28 11:27:40 +0100
committerNRK <nrk@disroot.org>2023-01-28 11:27:40 +0100
commit01f3cf2e4778940a82001e48cfeec767841f52c4 (patch)
tree7d61272eb5c71935238d0ecd52b2806398564fce
parent6ffc64a04e5e4200103db9df6bd85f958a942d9f (diff)
downloadnsxiv-01f3cf2e4778940a82001e48cfeec767841f52c4.tar.zst
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>
-rw-r--r--thumbs.c12
-rw-r--r--util.c3
-rw-r--r--window.c7
3 files changed, 9 insertions, 13 deletions
diff --git a/thumbs.c b/thumbs.c
index c9e97c4..038b501 100644
--- a/thumbs.c
+++ b/thumbs.c
@@ -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;
diff --git a/util.c b/util.c
index cfe64c6..94d4247 100644
--- a/util.c
+++ b/util.c
@@ -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)
diff --git a/window.c b/window.c
index 136b452..6e62979 100644
--- a/window.c
+++ b/window.c
@@ -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);