[vlc-devel] [PATCHv2 03/18] variables: add a twalk context

Thomas Guillem thomas at gllm.fr
Tue May 30 18:40:53 CEST 2017


Since the libc twalk() function doesn't propose any user specific void *
context.
---
 src/misc/variables.c | 6 +++++-
 src/misc/variables.h | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/misc/variables.c b/src/misc/variables.c
index 5e9ba678a8..b043d2018b 100644
--- a/src/misc/variables.c
+++ b/src/misc/variables.c
@@ -100,6 +100,9 @@ struct variable_t
     callback_table_t    value_callbacks;
     /** Registered list callbacks */
     callback_table_t    list_callbacks;
+
+    /** Private context used for twalk callbacks */
+    void **twalk_ctx;
 };
 
 static int CmpBool( vlc_value_t v, vlc_value_t w )
@@ -298,6 +301,7 @@ int var_Create( vlc_object_t *p_this, const char *psz_name, int i_type )
 {
     assert( p_this );
 
+    vlc_object_internals_t *p_priv = vlc_internals( p_this );
     variable_t *p_var = calloc( 1, sizeof( *p_var ) );
     if( p_var == NULL )
         return VLC_ENOMEM;
@@ -356,11 +360,11 @@ int var_Create( vlc_object_t *p_this, const char *psz_name, int i_type )
         default:
             vlc_assert_unreachable ();
     }
+    p_var->twalk_ctx = &p_priv->var_twalk_ctx;
 
     if (i_type & VLC_VAR_DOINHERIT)
         var_Inherit(p_this, psz_name, i_type, &p_var->val);
 
-    vlc_object_internals_t *p_priv = vlc_internals( p_this );
     variable_t **pp_var, *p_oldvar;
     int ret = VLC_SUCCESS;
 
diff --git a/src/misc/variables.h b/src/misc/variables.h
index 97fb2ba18d..76a7dd3360 100644
--- a/src/misc/variables.h
+++ b/src/misc/variables.h
@@ -36,6 +36,7 @@ struct vlc_object_internals
 
     /* Object variables */
     void           *var_root;
+    void           *var_twalk_ctx;
     vlc_mutex_t     var_lock;
     vlc_cond_t      var_wait;
 
-- 
2.11.0



More information about the vlc-devel mailing list