aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-09-17 22:11:20 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-09-17 22:11:20 +0200
commite3671006dba1c21316c570e11d6688f5513fb44e (patch)
tree3a781c88042da7ec340d97487d9655643390ebe4
parent426887ccec8577ee33d1fb44f258d6a70a2eddf1 (diff)
downloadst-e3671006dba1c21316c570e11d6688f5513fb44e.tar.gz
st-e3671006dba1c21316c570e11d6688f5513fb44e.tar.bz2
st-e3671006dba1c21316c570e11d6688f5513fb44e.zip
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(-)
-rw-r--r--st.c13
1 files 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;