drw: a valid (non-NULL) Drw and Fnt context must be passed
[dmenu.git] / drw.c
diff --git a/drw.c b/drw.c
index 6aeb59d..4815e3a 100644 (file)
--- a/drw.c
+++ b/drw.c
@@ -65,8 +65,7 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
 {
        Drw *drw;
 
-       if (!(drw = calloc(1, sizeof(Drw))))
-               return NULL;
+       drw = ecalloc(1, sizeof(Drw));
        drw->dpy = dpy;
        drw->screen = screen;
        drw->root = root;
@@ -83,8 +82,6 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
 void
 drw_resize(Drw *drw, unsigned int w, unsigned int h)
 {
-       if (!drw)
-               return;
        drw->w = w;
        drw->h = h;
        if (drw->drawable)
@@ -189,16 +186,11 @@ Clr *
 drw_clr_create(Drw *drw, const char *clrname)
 {
        Clr *clr;
-       Colormap cmap;
-       Visual *vis;
 
-       if (!drw)
-               return NULL;
-       if (!(clr = calloc(1, sizeof(Clr))))
-               return NULL;
-       cmap = DefaultColormap(drw->dpy, drw->screen);
-       vis = DefaultVisual(drw->dpy, drw->screen);
-       if (!XftColorAllocName(drw->dpy, vis, cmap, clrname, &clr->rgb))
+       clr = ecalloc(1, sizeof(Clr));
+       if (!XftColorAllocName(drw->dpy, DefaultVisual(drw->dpy, drw->screen),
+                              DefaultColormap(drw->dpy, drw->screen),
+                              clrname, &clr->rgb))
                die("error, cannot allocate color '%s'\n", clrname);
        clr->pix = clr->rgb.pixel;
 
@@ -214,15 +206,13 @@ drw_clr_free(Clr *clr)
 void
 drw_setscheme(Drw *drw, ClrScheme *scheme)
 {
-       if (!drw)
-               return;
        drw->scheme = scheme;
 }
 
 void
 drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int empty, int invert)
 {
-       if (!drw || !drw->scheme)
+       if (!drw->scheme)
                return;
        XSetForeground(drw->dpy, drw->gc, invert ? drw->scheme->bg->pix : drw->scheme->fg->pix);
        if (filled)
@@ -373,8 +363,6 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *tex
 void
 drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h)
 {
-       if (!drw)
-               return;
        XCopyArea(drw->dpy, drw->drawable, win, drw->gc, x, y, w, h, x, y);
        XSync(drw->dpy, False);
 }
@@ -384,8 +372,6 @@ drw_font_getexts(Fnt *font, const char *text, unsigned int len, Extnts *tex)
 {
        XGlyphInfo ext;
 
-       if (!font || !text)
-               return;
        XftTextExtentsUtf8(font->dpy, font->xfont, (XftChar8 *)text, len, &ext);
        tex->h = font->h;
        tex->w = ext.xOff;
@@ -396,9 +382,8 @@ drw_font_getexts_width(Fnt *font, const char *text, unsigned int len)
 {
        Extnts tex;
 
-       if (!font)
-               return -1;
        drw_font_getexts(font, text, len, &tex);
+
        return tex.w;
 }
 
@@ -407,10 +392,7 @@ drw_cur_create(Drw *drw, int shape)
 {
        Cur *cur;
 
-       if (!drw)
-               return NULL;
-       if (!(cur = calloc(1, sizeof(Cur))))
-               return NULL;
+       cur = ecalloc(1, sizeof(Cur));
        cur->cursor = XCreateFontCursor(drw->dpy, shape);
 
        return cur;
@@ -419,7 +401,7 @@ drw_cur_create(Drw *drw, int shape)
 void
 drw_cur_free(Drw *drw, Cur *cursor)
 {
-       if (!drw || !cursor)
+       if (!cursor)
                return;
        XFreeCursor(drw->dpy, cursor->cursor);
        free(cursor);