[vlc-commits] commit: xlib: don't abort if autodetection fails ( =?UTF-8?Q?R=C3=A9mi=20Denis=2DCourmont=20?=)

git at videolan.org git at videolan.org
Sun Jan 9 17:38:58 CET 2011


vlc/vlc-1.1 | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Jan  9 18:38:09 2011 +0200| [535fc4ea057cb803d355001001333d49911b5d8c] | committer: Rémi Denis-Courmont 

xlib: don't abort if autodetection fails

(cherry picked from commit 3884bc644750dff5d9c29ca4d2c879ab9e8fd5eb)

> http://git.videolan.org/gitweb.cgi/vlc/vlc-1.1.git/?a=commit;h=535fc4ea057cb803d355001001333d49911b5d8c
---

 include/vlc_xlib.h |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/include/vlc_xlib.h b/include/vlc_xlib.h
index 483c9fc..a1d8de3 100644
--- a/include/vlc_xlib.h
+++ b/include/vlc_xlib.h
@@ -28,29 +28,29 @@
 
 static inline bool vlc_xlib_init (vlc_object_t *obj)
 {
+    if (!var_InheritBool (obj, "xlib"))
+        return false;
+
     bool ok = false;
 
-    if (var_InheritBool (obj, "xlib"))
-    {
-        /* XInitThreads() can be called multiple times,
-         * but it is not reentrant, so we need this global lock. */
-        vlc_global_lock (VLC_XLIB_MUTEX);
-
-        if (_Xglobal_lock == NULL && unlikely(_XErrorFunction != NULL))
-        {
-            /* (_Xglobal_lock == NULL) => Xlib threads not initialized */
-            /* (_XErrorFunction != NULL) => Xlib already in use */
-            fprintf (stderr, "%s:%u:%s: Xlib not initialized for threads.\n"
-                     "This process is probably using LibVLC incorrectly.\n"
-                     "Pass \"--no-xlib\" to libvlc_new() to fix this.\n",
-                     __FILE__, __LINE__, __func__);
-            /* Initiate core meltdown */
-            abort ();
-        }
-        else
-            ok = XInitThreads () != 0;
-        vlc_global_unlock (VLC_XLIB_MUTEX);
-    }
+    /* XInitThreads() can be called multiple times,
+     * but it is not reentrant, so we need this global lock. */
+    vlc_global_lock (VLC_XLIB_MUTEX);
+
+    if (_Xglobal_lock == NULL && unlikely(_XErrorFunction != NULL))
+        /* (_Xglobal_lock == NULL) => Xlib threads not initialized */
+        /* (_XErrorFunction != NULL) => Xlib already in use */
+        fprintf (stderr, "%s:%u:%s: Xlib not initialized for threads.\n"
+                 "This process is probably using LibVLC incorrectly.\n"
+                 "Pass \"--no-xlib\" to libvlc_new() to fix this.\n",
+                 __FILE__, __LINE__, __func__);
+    else if (XInitThreads ())
+        ok = true;
+
+    vlc_global_unlock (VLC_XLIB_MUTEX);
+
+    if (!ok)
+        msg_Err (obj, "Xlib not initialized for threads");
     return ok;
 }
 



More information about the vlc-commits mailing list