# HG changeset patch # User Jeffrey Connelly # Date 1186807132 0 # Node ID 7db556e97dd173e0bdc3243990ac7a3b8291661d # Parent 00499df91ffe7ae92871218b3af62d9fe1967293 Make msim_escape_or_unescape() take a const gchar *, and duplicate it itself so that it is not freed. Makes code clearer. diff -r 00499df91ffe -r 7db556e97dd1 libpurple/protocols/myspace/message.c --- a/libpurple/protocols/myspace/message.c Sat Aug 11 04:34:20 2007 +0000 +++ b/libpurple/protocols/myspace/message.c Sat Aug 11 04:38:52 2007 +0000 @@ -22,7 +22,7 @@ #include "myspace.h" #include "message.h" -static gchar *msim_unescape_or_escape(gchar *msg, gboolean escape); +static gchar *msim_unescape_or_escape(const gchar *msg, gboolean escape); static void msim_msg_free_element(gpointer data, gpointer user_data); static void msim_msg_debug_string_element(gpointer data, gpointer user_data); static gchar *msim_msg_pack_using(MsimMessage *msg, GFunc gf, const gchar *sep, const gchar *begin, const gchar *end); @@ -44,18 +44,21 @@ /** * Unescape or escape a protocol message. * - * @param msg The message to be unescaped or escaped. WILL BE FREED. + * @param msg The message to be unescaped or escaped. * @param escape TRUE to escape, FALSE to unescape. * * @return The unescaped or escaped message. Caller must g_free(). */ static gchar * -msim_unescape_or_escape(gchar *msg, gboolean escape) +msim_unescape_or_escape(const gchar *original_msg, gboolean escape) { - gchar *tmp; + gchar *tmp, *msg; guint i; struct MSIM_ESCAPE_REPLACEMENT* replacement; + /* Freed in loop below. */ + msg = g_strdup(original_msg); + /* Replace each code in msim_replacement_code with * corresponding entry in msim_replacement_text. */ for (i = 0; (replacement = &msim_escape_replacements[i]); ++i) { @@ -87,13 +90,13 @@ gchar * msim_escape(const gchar *msg) { - return msim_unescape_or_escape(g_strdup(msg), TRUE); + return msim_unescape_or_escape(msg, TRUE); } gchar * msim_unescape(const gchar *msg) { - return msim_unescape_or_escape(g_strdup(msg), FALSE); + return msim_unescape_or_escape(msg, FALSE); } /** Create a new MsimMessage.