avoid doing dynamic allocation for bar buffers (#279)

just use a static buffer since the size is constant and doesn't change.

as opposed to using malloc, this also sets the buffer's initial memory
region to 0 by default.

also remove BAR_{L,R}_LEN from nsxiv.h, not needed after commit b4268fbf38
This commit is contained in:
N-R-K 2022-06-01 01:40:49 +00:00 committed by GitHub
parent 57ff8afe02
commit 364c3d6f01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 14 deletions

View File

@ -366,11 +366,6 @@ spawn_t spawn(const char*, char *const [], unsigned int);
#include <X11/Xft/Xft.h>
#endif
enum {
BAR_L_LEN = 512,
BAR_R_LEN = 64
};
enum {
ATOM_WM_DELETE_WINDOW,
ATOM__NET_WM_NAME,

View File

@ -106,11 +106,13 @@ void win_init(win_t *win)
{
win_env_t *e;
const char *win_bg, *win_fg, *mrk_fg;
#if HAVE_LIBFONTS
const char *bar_fg, *bar_bg, *f;
#endif
char *res_man;
XrmDatabase db;
#if HAVE_LIBFONTS
const char *bar_fg, *bar_bg, *f;
static char lbuf[512 + 3], rbuf[64 + 3];
#endif
memset(win, 0, sizeof(win_t));
@ -148,13 +150,11 @@ void win_init(win_t *win)
f = win_res(db, RES_CLASS ".bar.font", DEFAULT_FONT);
win_init_font(e, f);
win->bar.l.size = BAR_L_LEN;
win->bar.r.size = BAR_R_LEN;
win->bar.l.buf = lbuf;
win->bar.r.buf = rbuf;
/* 3 padding bytes needed by utf8_decode */
win->bar.l.buf = emalloc(win->bar.l.size + 3);
win->bar.l.buf[0] = '\0';
win->bar.r.buf = emalloc(win->bar.r.size + 3);
win->bar.r.buf[0] = '\0';
win->bar.l.size = sizeof(lbuf) - 3;
win->bar.r.size = sizeof(rbuf) - 3;
win->bar.h = options->hide_bar ? 0 : barheight;
win->bar.top = TOP_STATUSBAR;
#endif /* HAVE_LIBFONTS */