diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-06-18 19:09:36 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-06-18 19:09:36 +0000 |
| commit | ae3bc8673d79edecb8fcb918d83db011535b0955 (patch) | |
| tree | 3218d825b0856692ff4c795edf734a27a9dcb5dd /lib/gdi/grc.cpp | |
| parent | f44dfc20f4ed708d67603f767a976c1168393627 (diff) | |
| download | enigma2-ae3bc8673d79edecb8fcb918d83db011535b0955.tar.gz enigma2-ae3bc8673d79edecb8fcb918d83db011535b0955.zip | |
hopefully fix frequently segfaults
Diffstat (limited to 'lib/gdi/grc.cpp')
| -rw-r--r-- | lib/gdi/grc.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/gdi/grc.cpp b/lib/gdi/grc.cpp index 274d221b..ef75aace 100644 --- a/lib/gdi/grc.cpp +++ b/lib/gdi/grc.cpp @@ -237,7 +237,7 @@ void gPainter::renderText(const eRect &pos, const std::string &string, int flags o.dc = m_dc.grabRef(); o.parm.renderText = new gOpcode::para::prenderText; o.parm.renderText->area = pos; - o.parm.renderText->text = string; + o.parm.renderText->text = string.empty()?0:strdup(string.c_str()); o.parm.renderText->flags = flags; m_rc->submit(o); } @@ -539,7 +539,8 @@ void gDC::exec(gOpcode *o) assert(m_current_font); para->setFont(m_current_font); para->renderString(o->parm.renderText->text, (flags & gPainter::RT_WRAP) ? RS_WRAP : 0); - + if (o->parm.renderText->text) + free(o->parm.renderText->text); if (flags & gPainter::RT_HALIGN_RIGHT) para->realign(eTextPara::dirRight); else if (flags & gPainter::RT_HALIGN_CENTER) |
