aboutsummaryrefslogtreecommitdiff
path: root/lib/gdi/grc.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-06-18 19:09:36 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-06-18 19:09:36 +0000
commitae3bc8673d79edecb8fcb918d83db011535b0955 (patch)
tree3218d825b0856692ff4c795edf734a27a9dcb5dd /lib/gdi/grc.cpp
parentf44dfc20f4ed708d67603f767a976c1168393627 (diff)
downloadenigma2-ae3bc8673d79edecb8fcb918d83db011535b0955.tar.gz
enigma2-ae3bc8673d79edecb8fcb918d83db011535b0955.zip
hopefully fix frequently segfaults
Diffstat (limited to 'lib/gdi/grc.cpp')
-rw-r--r--lib/gdi/grc.cpp5
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)