[empathy/gnome-2-34] string-parser: properly handle if g_regex_new() fails



commit d23ec3dc8820592c390adec4de712a570a3c06c7
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 45ae6a7..a6bffa0 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]