From bad97699f9142838adec5005dc7a44d6b5bb187e Mon Sep 17 00:00:00 2001 From: okan Date: Thu, 26 Mar 2015 21:41:43 +0000 Subject: Simplify key/mb binding moving argtype into flags and dropping another variable; removes the need to zero out struct binding, leaving a simple malloc. --- calmwm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'calmwm.h') diff --git a/calmwm.h b/calmwm.h index 0e5652a..1d1cbe5 100644 --- a/calmwm.h +++ b/calmwm.h @@ -84,6 +84,7 @@ #define CWM_NOGAP 0x0002 #define CWM_WIN 0x0001 +#define CWM_CMD 0x0002 #define CWM_QUIT 0x0000 #define CWM_RUNNING 0x0001 @@ -252,7 +253,6 @@ struct binding { unsigned int modmask; union press press; int flags; - int argtype; }; TAILQ_HEAD(keybinding_q, binding); TAILQ_HEAD(mousebinding_q, binding); -- cgit 1.4.1 From a4a414b68bf8a59255ee68959863f4c5fdee85d9 Mon Sep 17 00:00:00 2001 From: okan Date: Sat, 28 Mar 2015 23:12:47 +0000 Subject: Introduce a xreallocarray and convert a few xcalloc instances that do not require zero'ing. --- calmwm.h | 1 + group.c | 2 +- xmalloc.c | 12 ++++++++++++ xutil.c | 8 ++++---- 4 files changed, 18 insertions(+), 5 deletions(-) (limited to 'calmwm.h') diff --git a/calmwm.h b/calmwm.h index 1d1cbe5..fd4b554 100644 --- a/calmwm.h +++ b/calmwm.h @@ -559,6 +559,7 @@ void u_spawn(char *); void *xcalloc(size_t, size_t); void *xmalloc(size_t); +void *xreallocarray(void *, size_t, size_t); char *xstrdup(const char *); int xasprintf(char **, const char *, ...) __attribute__((__format__ (printf, 2, 3))) diff --git a/group.c b/group.c index 834c2f7..7ab65f9 100644 --- a/group.c +++ b/group.c @@ -91,7 +91,7 @@ group_restack(struct group_ctx *gc) if (cc->stackingorder > highstack) highstack = cc->stackingorder; } - winlist = xcalloc((highstack + 1), sizeof(*winlist)); + winlist = xreallocarray(NULL, (highstack + 1), sizeof(*winlist)); /* Invert the stacking order for XRestackWindows(). */ TAILQ_FOREACH(cc, &gc->clientq, group_entry) { diff --git a/xmalloc.c b/xmalloc.c index 2db79ab..9cf824a 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -61,6 +61,18 @@ xcalloc(size_t no, size_t siz) return(p); } +void * +xreallocarray(void *ptr, size_t nmemb, size_t size) +{ + void *p; + + p = reallocarray(ptr, nmemb, size); + if (p == NULL) + errx(1, "xreallocarray: out of memory (new_size %zu bytes)", + nmemb * size); + return(p); +} + char * xstrdup(const char *str) { diff --git a/xutil.c b/xutil.c index 85276ba..c6248c4 100644 --- a/xutil.c +++ b/xutil.c @@ -220,7 +220,7 @@ xu_ewmh_net_client_list(struct screen_ctx *sc) if (i == 0) return; - winlist = xcalloc(i, sizeof(*winlist)); + winlist = xreallocarray(NULL, i, sizeof(*winlist)); TAILQ_FOREACH(cc, &sc->clientq, entry) winlist[j++] = cc->win; XChangeProperty(X_Dpy, sc->rootwin, ewmh[_NET_CLIENT_LIST], @@ -320,7 +320,7 @@ xu_ewmh_net_desktop_names(struct screen_ctx *sc) TAILQ_FOREACH(gc, &sc->groupq, entry) len += strlen(gc->name) + 1; - q = p = xcalloc(len, sizeof(*p)); + q = p = xreallocarray(NULL, len, sizeof(*p)); tlen = len; TAILQ_FOREACH(gc, &sc->groupq, entry) { @@ -357,7 +357,7 @@ xu_ewmh_get_net_wm_state(struct client_ctx *cc, int *n) (unsigned char **)&p)) <= 0) return(NULL); - state = xcalloc(*n, sizeof(Atom)); + state = xreallocarray(NULL, *n, sizeof(Atom)); (void)memcpy(state, p, *n * sizeof(Atom)); XFree((char *)p); @@ -444,7 +444,7 @@ xu_ewmh_set_net_wm_state(struct client_ctx *cc) int n, i, j; oatoms = xu_ewmh_get_net_wm_state(cc, &n); - atoms = xcalloc((n + _NET_WM_STATES_NITEMS), sizeof(Atom)); + atoms = xreallocarray(NULL, (n + _NET_WM_STATES_NITEMS), sizeof(Atom)); for (i = j = 0; i < n; i++) { if (oatoms[i] != ewmh[_NET_WM_STATE_STICKY] && oatoms[i] != ewmh[_NET_WM_STATE_MAXIMIZED_HORZ] && -- cgit 1.4.1