From ccba91308dd323f1c9d9caaf8e92951c5c840c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 4 Dec 2013 17:35:18 -0500 Subject: [PATCH] info: Make sure the same category is not added twice --- gst/gstinfo.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gst/gstinfo.c b/gst/gstinfo.c index ab454b5245..c9d8325bc6 100644 --- a/gst/gstinfo.c +++ b/gst/gstinfo.c @@ -248,6 +248,9 @@ LevelNameEntry; static GMutex __cat_mutex; static GSList *__categories = NULL; +static GstDebugCategory *_gst_debug_get_category_locked (const gchar * name); + + /* all registered debug handlers */ typedef struct { @@ -1523,7 +1526,13 @@ _gst_debug_category_new (const gchar * name, guint color, /* add to category list */ g_mutex_lock (&__cat_mutex); - __categories = g_slist_prepend (__categories, cat); + if (_gst_debug_get_category_locked (name)) { + g_free ((gpointer) cat->name); + g_free ((gpointer) cat->description); + g_slice_free (GstDebugCategory, cat); + } else { + __categories = g_slist_prepend (__categories, cat); + } g_mutex_unlock (&__cat_mutex); return cat;