From 9bb42946a8791addade91b9e9379f94b144429f7 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 | 3 ++- group.c | 4 ++-- xmalloc.c | 14 +++++++++++++- xutil.c | 10 +++++----- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/calmwm.h b/calmwm.h index 03783cd..748db69 100644 --- a/calmwm.h +++ b/calmwm.h @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: calmwm.h,v 1.285 2015/03/26 21:41:43 okan Exp $ + * $OpenBSD: calmwm.h,v 1.286 2015/03/28 23:12:47 okan Exp $ */ #ifndef _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 a5f4859..d18ece8 100644 --- a/group.c +++ b/group.c @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: group.c,v 1.110 2015/01/19 14:54:16 okan Exp $ + * $OpenBSD: group.c,v 1.111 2015/03/28 23:12:47 okan Exp $ */ #include @@ -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 94f0691..21a65d7 100644 --- a/xmalloc.c +++ b/xmalloc.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: xmalloc.c,v 1.14 2015/01/19 14:54:16 okan Exp $ + * $OpenBSD: xmalloc.c,v 1.15 2015/03/28 23:12:47 okan Exp $ */ #include @@ -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 4529075..2d4ab87 100644 --- a/xutil.c +++ b/xutil.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: xutil.c,v 1.98 2015/03/28 21:55:48 okan Exp $ + * $OpenBSD: xutil.c,v 1.99 2015/03/28 23:12:47 okan Exp $ */ #include @@ -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 v1.2.3-2-gb3c3