[vlc-devel] [PATCH 2/3] objects: allow using DumpStructure in other parts of the core

Thomas Guillem thomas at gllm.fr
Tue Mar 12 09:33:07 CET 2019



On Tue, Mar 12, 2019, at 09:25, Steve Lhomme wrote:
> ---
>  src/misc/objects.c   | 9 +++++----
>  src/misc/variables.h | 1 +
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/misc/objects.c b/src/misc/objects.c
> index 481536d258..61318c951a 100644
> --- a/src/misc/objects.c
> +++ b/src/misc/objects.c
> @@ -117,7 +117,7 @@ static void PrintObject(vlc_object_t *obj, FILE *output)
>      vlc_restorecancel (canc);
>  }
>  
> -static void DumpStructure(vlc_object_t *obj, FILE *output, unsigned 
> level)
> +void DumpStructure(vlc_object_t *obj, FILE *output, unsigned level, 
> bool locked)

I prefer adding a new function DumpStructureLocked than handling a new locked boolean.

>  {
>      PrintObject(obj, output);
>  
> @@ -129,9 +129,10 @@ static void DumpStructure(vlc_object_t *obj, FILE 
> *output, unsigned level)
>  
>      vlc_object_internals_t *priv;
>  
> -    vlc_mutex_assert(&tree_lock);
> +    if (locked)
> +        vlc_mutex_assert(&tree_lock);
>      vlc_children_foreach(priv, vlc_internals(obj))
> -        DumpStructure(vlc_externals(priv), output, level + 1);
> +        DumpStructure(vlc_externals(priv), output, level + 1, locked);
>  }
>  
>  /**
> @@ -148,7 +149,7 @@ static int TreeCommand (vlc_object_t *obj, char const *cmd,
>  
>      flockfile(stdout);
>      vlc_mutex_lock(&tree_lock);
> -    DumpStructure(obj, stdout, 0);
> +    DumpStructure(obj, stdout, 0, true);
>      vlc_mutex_unlock(&tree_lock);
>      funlockfile(stdout);
>      return VLC_SUCCESS;
> diff --git a/src/misc/variables.h b/src/misc/variables.h
> index b850553687..10bf2db369 100644
> --- a/src/misc/variables.h
> +++ b/src/misc/variables.h
> @@ -60,6 +60,7 @@ struct vlc_object_internals
>  # define vlc_externals( priv ) ((vlc_object_t *)((priv) + 1))
>  
>  void DumpVariables(vlc_object_t *obj);
> +void DumpStructure(vlc_object_t *obj, FILE *output, unsigned level, 
> bool locked);
>  
>  extern void var_DestroyAll( vlc_object_t * );
>  
> -- 
> 2.17.1
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list