]> git.sesse.net Git - vlc/commitdiff
vlc_Log: allow NULL vlc_object_t parameter
authorRafaël Carré <funman@videolan.org>
Mon, 25 Mar 2013 14:15:34 +0000 (15:15 +0100)
committerRafaël Carré <funman@videolan.org>
Mon, 25 Mar 2013 14:16:03 +0000 (15:16 +0100)
src/misc/messages.c

index 780fb65fec48f75368138fc908e39fbdd2e724aa..0b5a3fd147e6f744e0a9960e6a1d536d7ca05e0d 100644 (file)
@@ -160,19 +160,21 @@ void vlc_vaLog (vlc_object_t *obj, int type, const char *module,
         }
 
     /* Pass message to the callback */
-    libvlc_priv_t *priv = libvlc_priv (obj->p_libvlc);
+    libvlc_priv_t *priv = obj ? libvlc_priv (obj->p_libvlc) : NULL;
 
 #ifdef WIN32
     va_list ap;
 
     va_copy (ap, args);
-    Win32DebugOutputMsg (&priv->log.verbose, type, &msg, format, ap);
+    Win32DebugOutputMsg (priv ? &priv->log.verbose : NULL, type, &msg, format, ap);
     va_end (ap);
 #endif
 
-    vlc_rwlock_rdlock (&priv->log.lock);
-    priv->log.cb (priv->log.opaque, type, &msg, format, args);
-    vlc_rwlock_unlock (&priv->log.lock);
+    if (priv) {
+        vlc_rwlock_rdlock (&priv->log.lock);
+        priv->log.cb (priv->log.opaque, type, &msg, format, args);
+        vlc_rwlock_unlock (&priv->log.lock);
+    }
 
     uselocale (locale);
     freelocale (c);