forked from enlightenment/efl
Evas: Textblock - Sanitized format init and shutdown.
SVN revision: 50991
This commit is contained in:
parent
af1dc88234
commit
41ebc486dc
|
@ -979,6 +979,8 @@ _format_color_parse(const char *str, unsigned char *r, unsigned char *g, unsigne
|
||||||
*b = (*b * *a) / 255;
|
*b = (*b * *a) / 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The refcount for the formats. */
|
||||||
|
static int format_refcount = 0;
|
||||||
/* Holders for the stringshares */
|
/* Holders for the stringshares */
|
||||||
static const char *fontstr = NULL;
|
static const char *fontstr = NULL;
|
||||||
static const char *font_fallbacksstr = NULL;
|
static const char *font_fallbacksstr = NULL;
|
||||||
|
@ -1017,7 +1019,7 @@ static const char *linefillstr = NULL;
|
||||||
static void
|
static void
|
||||||
_format_command_init(void)
|
_format_command_init(void)
|
||||||
{
|
{
|
||||||
if (!fontstr)
|
if (format_refcount == 0)
|
||||||
{
|
{
|
||||||
fontstr = eina_stringshare_add("font");
|
fontstr = eina_stringshare_add("font");
|
||||||
font_fallbacksstr = eina_stringshare_add("font_fallbacks");
|
font_fallbacksstr = eina_stringshare_add("font_fallbacks");
|
||||||
|
@ -1049,40 +1051,7 @@ _format_command_init(void)
|
||||||
itemstr = eina_stringshare_add("item");
|
itemstr = eina_stringshare_add("item");
|
||||||
linefillstr = eina_stringshare_add("linefill");
|
linefillstr = eina_stringshare_add("linefill");
|
||||||
}
|
}
|
||||||
else
|
format_refcount++;
|
||||||
{
|
|
||||||
/*FIXME: just implement proper refcounting */
|
|
||||||
return;
|
|
||||||
eina_stringshare_ref(fontstr);
|
|
||||||
eina_stringshare_ref(font_fallbacksstr);
|
|
||||||
eina_stringshare_ref(font_sizestr);
|
|
||||||
eina_stringshare_ref(font_sourcestr);
|
|
||||||
eina_stringshare_ref(colorstr);
|
|
||||||
eina_stringshare_ref(underline_colorstr);
|
|
||||||
eina_stringshare_ref(underline2_colorstr);
|
|
||||||
eina_stringshare_ref(outline_colorstr);
|
|
||||||
eina_stringshare_ref(shadow_colorstr);
|
|
||||||
eina_stringshare_ref(glow_colorstr);
|
|
||||||
eina_stringshare_ref(glow2_colorstr);
|
|
||||||
eina_stringshare_ref(backing_colorstr);
|
|
||||||
eina_stringshare_ref(strikethrough_colorstr);
|
|
||||||
eina_stringshare_ref(alignstr);
|
|
||||||
eina_stringshare_ref(valignstr);
|
|
||||||
eina_stringshare_ref(wrapstr);
|
|
||||||
eina_stringshare_ref(left_marginstr);
|
|
||||||
eina_stringshare_ref(right_marginstr);
|
|
||||||
eina_stringshare_ref(underlinestr);
|
|
||||||
eina_stringshare_ref(strikethroughstr);
|
|
||||||
eina_stringshare_ref(backingstr);
|
|
||||||
eina_stringshare_ref(stylestr);
|
|
||||||
eina_stringshare_ref(tabstopsstr);
|
|
||||||
eina_stringshare_ref(linesizestr);
|
|
||||||
eina_stringshare_ref(linerelsizestr);
|
|
||||||
eina_stringshare_ref(linegapstr);
|
|
||||||
eina_stringshare_ref(linerelgapstr);
|
|
||||||
eina_stringshare_ref(itemstr);
|
|
||||||
eina_stringshare_ref(linefillstr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1092,10 +1061,8 @@ _format_command_init(void)
|
||||||
static void
|
static void
|
||||||
_format_command_shutdown(void)
|
_format_command_shutdown(void)
|
||||||
{
|
{
|
||||||
return;
|
if (--format_refcount > 0) return;
|
||||||
/*FIXME: should del, the problem is that it's not possible to know the ref
|
|
||||||
* count so it's not possible to know when the last textblock finished.
|
|
||||||
* Should probably just add a refcount to the object. */
|
|
||||||
eina_stringshare_del(fontstr);
|
eina_stringshare_del(fontstr);
|
||||||
eina_stringshare_del(font_fallbacksstr);
|
eina_stringshare_del(font_fallbacksstr);
|
||||||
eina_stringshare_del(font_sizestr);
|
eina_stringshare_del(font_sizestr);
|
||||||
|
@ -3769,7 +3736,6 @@ evas_object_textblock_text_markup_prepend(Evas_Textblock_Cursor *cur, const char
|
||||||
if (tag_end)
|
if (tag_end)
|
||||||
{
|
{
|
||||||
/* If we reached to a tag ending, analyze the tag */
|
/* If we reached to a tag ending, analyze the tag */
|
||||||
/* FIXME: Move tag analyzing to a different function */
|
|
||||||
char *ttag;
|
char *ttag;
|
||||||
size_t ttag_len = tag_end - tag_start -1;
|
size_t ttag_len = tag_end - tag_start -1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue