forked from enlightenment/efl
fix bug with prev/cur text state access in text obj for utf8 string.
SVN revision: 57201
This commit is contained in:
parent
18f48360fc
commit
a3808761cc
|
@ -110,3 +110,9 @@
|
||||||
* Fix bug in font string parsing that can result in a crash if a
|
* Fix bug in font string parsing that can result in a crash if a
|
||||||
font element is long enough.
|
font element is long enough.
|
||||||
* Fiix convert rgba8888 -> a8 bug so it wont crash.
|
* Fiix convert rgba8888 -> a8 bug so it wont crash.
|
||||||
|
|
||||||
|
2011-02-21 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Fixed bug with memory access of old utf8 string when
|
||||||
|
comparing prev and cur state with text obj.
|
||||||
|
|
||||||
|
|
|
@ -673,11 +673,8 @@ evas_object_text_text_set(Evas_Object *obj, const char *_text)
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
|
|
||||||
if ((o->cur.utf8_text) && (_text) &&
|
if ((o->cur.utf8_text) && (_text) && (!strcmp(o->cur.utf8_text, _text)))
|
||||||
(!strcmp(o->cur.utf8_text, _text)))
|
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
text = eina_unicode_utf8_to_unicode(_text, &len);
|
text = eina_unicode_utf8_to_unicode(_text, &len);
|
||||||
|
|
||||||
if (!text) text = eina_unicode_strdup(EINA_UNICODE_EMPTY_STRING);
|
if (!text) text = eina_unicode_strdup(EINA_UNICODE_EMPTY_STRING);
|
||||||
|
@ -693,6 +690,7 @@ evas_object_text_text_set(Evas_Object *obj, const char *_text)
|
||||||
{
|
{
|
||||||
_evas_object_text_layout(obj, o, text);
|
_evas_object_text_layout(obj, o, text);
|
||||||
eina_stringshare_replace(&o->cur.utf8_text, _text);
|
eina_stringshare_replace(&o->cur.utf8_text, _text);
|
||||||
|
o->prev.utf8_text = NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2138,14 +2136,8 @@ evas_object_text_render_pre(Evas_Object *obj)
|
||||||
if (o->changed)
|
if (o->changed)
|
||||||
{
|
{
|
||||||
if ((o->cur.size != o->prev.size) ||
|
if ((o->cur.size != o->prev.size) ||
|
||||||
((o->cur.font) && (o->prev.font) &&
|
((o->cur.font != o->prev.font)) ||
|
||||||
(strcmp(o->cur.font, o->prev.font))) ||
|
((o->cur.utf8_text != o->prev.utf8_text)) ||
|
||||||
((o->cur.font) && (!o->prev.font)) ||
|
|
||||||
((!o->cur.font) && (o->prev.font)) ||
|
|
||||||
((o->cur.utf8_text) && (o->prev.utf8_text) &&
|
|
||||||
(strcmp(o->cur.utf8_text, o->prev.utf8_text))) ||
|
|
||||||
((o->cur.utf8_text) && (!o->prev.utf8_text)) ||
|
|
||||||
((!o->cur.utf8_text) && (o->prev.utf8_text)) ||
|
|
||||||
((o->cur.style != o->prev.style)) ||
|
((o->cur.style != o->prev.style)) ||
|
||||||
((o->cur.shadow.r != o->prev.shadow.r)) ||
|
((o->cur.shadow.r != o->prev.shadow.r)) ||
|
||||||
((o->cur.shadow.g != o->prev.shadow.g)) ||
|
((o->cur.shadow.g != o->prev.shadow.g)) ||
|
||||||
|
|
Loading…
Reference in New Issue