]> git.sesse.net Git - vlc/blobdiff - src/config/core.c
Merge commit 'origin/base'
[vlc] / src / config / core.c
index 037b1c5baf5fd081aa29995e40157ee75ea03262..721c2b58d560239022bf49abd91339cdf390b423 100644 (file)
@@ -26,7 +26,6 @@
 #endif
 
 #include <vlc_common.h>
-#include "../libvlc.h"
 #include "vlc_keys.h"
 #include "vlc_charset.h"
 #include "vlc_configuration.h"
@@ -534,35 +533,33 @@ void config_UnsetCallbacks( module_config_t *p_new, size_t n )
  *****************************************************************************/
 void __config_ResetAll( vlc_object_t *p_this )
 {
-    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
     module_t *p_module;
     module_t **list = module_list_get (NULL);
 
-    /* Acquire config file lock */
-    vlc_mutex_lock( &priv->config_lock );
-
-
     for (size_t j = 0; (p_module = list[j]) != NULL; j++)
     {
         if( p_module->b_submodule ) continue;
 
         for (size_t i = 0; i < p_module->confsize; i++ )
         {
-            if (IsConfigIntegerType (p_module->p_config[i].i_type))
-                p_module->p_config[i].value.i = p_module->p_config[i].orig.i;
+            module_config_t *p_config = p_module->p_config + i;
+
+            vlc_mutex_lock (p_config->p_lock);
+            if (IsConfigIntegerType (p_config->i_type))
+                p_config->value.i = p_config->orig.i;
             else
-            if (IsConfigFloatType (p_module->p_config[i].i_type))
-                p_module->p_config[i].value.f = p_module->p_config[i].orig.f;
+            if (IsConfigFloatType (p_config->i_type))
+                p_config->value.f = p_config->orig.f;
             else
-            if (IsConfigStringType (p_module->p_config[i].i_type))
+            if (IsConfigStringType (p_config->i_type))
             {
-                free ((char *)p_module->p_config[i].value.psz);
-                p_module->p_config[i].value.psz =
-                        strdupnull (p_module->p_config[i].orig.psz);
+                free ((char *)p_config->value.psz);
+                p_config->value.psz =
+                        strdupnull (p_config->orig.psz);
             }
+            vlc_mutex_unlock (p_config->p_lock);
         }
     }
 
     module_list_free (list);
-    vlc_mutex_unlock( &priv->config_lock );
 }