priv->linkify_limit = 0;
priv->full_limit = 0;
priv->total_output = 0;
+ modest_text_utils_hyperlinkify_begin ();
}
static void
if (priv->line_buffer != NULL) {
g_string_free (priv->line_buffer, TRUE);
}
+ modest_text_utils_hyperlinkify_end ();
}
GObject*
static gint url_matches_block = 0;
static url_match_pattern_t patterns[] = MAIL_VIEWER_URL_MATCH_PATTERNS;
+static GMutex *url_patterns_mutex = NULL;
static gboolean
void
modest_text_utils_hyperlinkify_begin (void)
{
+
+ if (url_patterns_mutex == NULL) {
+ url_patterns_mutex = g_mutex_new ();
+ }
+ g_mutex_lock (url_patterns_mutex);
if (url_matches_block == 0)
compile_patterns ();
url_matches_block ++;
+ g_mutex_unlock (url_patterns_mutex);
}
void
modest_text_utils_hyperlinkify_end (void)
{
+ g_mutex_lock (url_patterns_mutex);
url_matches_block--;
if (url_matches_block <= 0)
free_patterns ();
+ g_mutex_unlock (url_patterns_mutex);
}
/**
* modest_text_utils_hyperlinkify_begin:
*
- * begin a linkify block, compiling the caches to be reused.
+ * begin a linkify block, compiling the caches to be reused. Use it in mainloop.
*/
void modest_text_utils_hyperlinkify_begin (void);
/**
* modest_text_utils_hyperlinkify_end:
*
- * end a linkify block, freeing the caches to be reused.
+ * end a linkify block, freeing the caches to be reused. Use it in mainloop.
*/
void modest_text_utils_hyperlinkify_end (void);