[empathy] string-parser: properly handle if g_regex_new() fails



commit ef8d5543ab390b62c99a0fc17e1ef30cdb08f6a5
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Feb 10 13:18:12 2011 +0100

    string-parser: properly handle if g_regex_new() fails

 libempathy-gtk/empathy-string-parser.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/libempathy-gtk/empathy-string-parser.c b/libempathy-gtk/empathy-string-parser.c
index 5f5df52..03eaaef 100644
--- a/libempathy-gtk/empathy-string-parser.c
+++ b/libempathy-gtk/empathy-string-parser.c
@@ -43,7 +43,14 @@ uri_regex_dup_singleton (void)
 
 	/* We intentionally leak the regex so it's not recomputed */
 	if (!uri_regex) {
-		uri_regex = g_regex_new (URI_REGEX, 0, 0, NULL);
+		GError *error = NULL;
+
+		uri_regex = g_regex_new (URI_REGEX, 0, 0, &error);
+		if (uri_regex == NULL) {
+			g_warning ("Failed to create reg exp: %s", error->message);
+			g_error_free (error);
+			return NULL;
+		}
 	}
 
 	return g_regex_ref (uri_regex);
@@ -75,6 +82,11 @@ empathy_string_match_link (const gchar *text,
 	gint        last = 0;
 
 	uri_regex = uri_regex_dup_singleton ();
+	if (uri_regex == NULL) {
+		empathy_string_parser_substr (text, len, sub_parsers, user_data);
+		return;
+	}
+
 	match = g_regex_match_full (uri_regex, text, len, 0, 0, &match_info, NULL);
 	if (match) {
 		gint s = 0, e = 0;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]