From ea8edc1000359b33ba20a1a20d9d34973485ed91 Mon Sep 17 00:00:00 2001 From: martin-s Date: Thu, 19 Jun 2008 21:51:26 +0000 Subject: [PATCH] Fix:gui_internal:Don't crash when text is NULL git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@1151 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/gui/internal/gui_internal.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/navit/navit/gui/internal/gui_internal.c b/navit/navit/gui/internal/gui_internal.c index ef22ae3..fb38082 100644 --- a/navit/navit/gui/internal/gui_internal.c +++ b/navit/navit/gui/internal/gui_internal.c @@ -274,14 +274,17 @@ static struct widget * gui_internal_label_new(struct gui_priv *this, char *text) { struct point p[4]; - int h=this->font_size; + int w=0,h=this->font_size; struct widget *widget=g_new0(struct widget, 1); widget->type=widget_label; - widget->text=g_strdup(text); - graphics_get_text_bbox(this->gra, this->font, text, 0x10000, 0x0, p); + if (text) { + widget->text=g_strdup(text); + graphics_get_text_bbox(this->gra, this->font, text, 0x10000, 0x0, p); + w=p[2].x-p[0].x; + } widget->h=h; - widget->w=p[2].x-p[0].x+this->spacing; + widget->w=w+this->spacing; widget->flags=gravity_center; return widget; @@ -339,8 +342,10 @@ gui_internal_label_render(struct gui_priv *this, struct widget *w) { struct point pnt=w->p; gui_internal_background_render(this, w); - pnt.y+=w->h-this->spacing; - graphics_draw_text(this->gra, this->text_foreground, this->text_background, this->font, w->text, &pnt, 0x10000, 0x0); + if (w->text) { + pnt.y+=w->h-this->spacing; + graphics_draw_text(this->gra, this->text_foreground, this->text_background, this->font, w->text, &pnt, 0x10000, 0x0); + } } static struct widget * -- 2.7.4