From c2db2c4258acc4bc299e3d326fda782caf57e747 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Tue, 30 Mar 2010 12:21:44 +0000 Subject: [PATCH] efreet: stringshare SVN revision: 47594 --- legacy/efreet/src/lib/efreet_xml.c | 10 ++++------ legacy/efreet/src/lib/efreet_xml.h | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/legacy/efreet/src/lib/efreet_xml.c b/legacy/efreet/src/lib/efreet_xml.c index d6e3ff0537..0ca1b219af 100644 --- a/legacy/efreet/src/lib/efreet_xml.c +++ b/legacy/efreet/src/lib/efreet_xml.c @@ -27,7 +27,7 @@ static Efreet_Xml *efreet_xml_parse(char **data, int *size); static int efreet_xml_tag_parse(char **data, int *size, const char **tag); static void efreet_xml_attributes_parse(char **data, int *size, Efreet_Xml_Attribute ***attributes); -static void efreet_xml_text_parse(char **data, int *size, char **text); +static void efreet_xml_text_parse(char **data, int *size, const char **text); static int efreet_xml_tag_empty(char **data, int *size); static int efreet_xml_tag_close(char **data, int *size, const char *tag); @@ -148,7 +148,7 @@ efreet_xml_del(Efreet_Xml *xml) } FREE(xml->attributes); } - IF_FREE(xml->text); + IF_RELEASE(xml->text); FREE(xml); } @@ -477,7 +477,7 @@ efreet_error: } static void -efreet_xml_text_parse(char **data, int *size, char **text) +efreet_xml_text_parse(char **data, int *size, const char **text) { const char *start = NULL, *end = NULL; int buf_size; @@ -516,9 +516,7 @@ efreet_xml_text_parse(char **data, int *size, char **text) buf_size = end - start + 1; if (buf_size <= 1) return; - *text = malloc(buf_size); - memcpy(*text, start, buf_size - 1); - (*text)[buf_size - 1] = '\0'; + *text = eina_stringshare_add_length(start, buf_size - 1); } static int diff --git a/legacy/efreet/src/lib/efreet_xml.h b/legacy/efreet/src/lib/efreet_xml.h index 5b8e600ea4..08f7d4f424 100644 --- a/legacy/efreet/src/lib/efreet_xml.h +++ b/legacy/efreet/src/lib/efreet_xml.h @@ -37,7 +37,7 @@ typedef struct Efreet_Xml Efreet_Xml; */ struct Efreet_Xml { - char *text; /**< The XML text for this node */ + const char *text; /**< The XML text for this node */ const char *tag; /**< The tag for this node */ Efreet_Xml_Attribute **attributes; /**< The attributes for this node */