From e3671006dba1c21316c570e11d6688f5513fb44e Mon Sep 17 00:00:00 2001 From: "Roberto E. Vargas Caballero" Date: Mon, 17 Sep 2012 22:11:20 +0200 Subject: Add xcalloc wrapper malloc and realloc are called through xmalloc and xrealloc, so calloc should be called through xcalloc. --- st.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) --- st.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/st.c b/st.c index d5ecf61..df7f8d8 100644 --- a/st.c +++ b/st.c @@ -324,6 +324,7 @@ static int isfullutf8(char *, int); static void *xmalloc(size_t); static void *xrealloc(void *, size_t); +static void *xcalloc(size_t nmemb, size_t size); static void (*handler[LASTEvent])(XEvent *) = { [KeyPress] = kpress, @@ -373,6 +374,14 @@ xrealloc(void *p, size_t len) { return p; } +void * +xcalloc(size_t nmemb, size_t size) { + void *p = calloc(nmemb, size); + if(!p) + die("Out of memory\n"); + return p; +} + int utf8decode(char *s, long *u) { uchar c; @@ -1801,8 +1810,8 @@ tresize(int col, int row) { /* allocate any new rows */ for(/* i == minrow */; i < row; i++) { term.dirty[i] = 1; - term.line[i] = calloc(col, sizeof(Glyph)); - term.alt [i] = calloc(col, sizeof(Glyph)); + term.line[i] = xcalloc(col, sizeof(Glyph)); + term.alt [i] = xcalloc(col, sizeof(Glyph)); } if(col > term.col) { bool *bp = term.tabs + term.col; -- cgit v1.2.3-13-gbd6f