[vlc-devel] [PATCH 1/4] objects: allow setting the output for DumpStructure

Steve Lhomme robux4 at ycbcr.xyz
Wed Mar 13 09:04:43 CET 2019


This patchset replaces https://patches.videolan.org/patch/22786/ - 
https://patches.videolan.org/patch/22788/

Renaming the call to DumpStructureLocked (and also starting at level 0 
as done for the object)

On 3/13/2019 9:01 AM, Steve Lhomme wrote:
> using stdout by default
> ---
>   src/misc/objects.c | 20 ++++++++++----------
>   1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/src/misc/objects.c b/src/misc/objects.c
> index 1f92381c26..481536d258 100644
> --- a/src/misc/objects.c
> +++ b/src/misc/objects.c
> @@ -85,7 +85,7 @@ static bool ObjectHasChild(vlc_object_t *obj)
>       return false;
>   }
>   
> -static void PrintObjectPrefix(vlc_object_t *obj, bool last)
> +static void PrintObjectPrefix(vlc_object_t *obj, FILE *output, bool last)
>   {
>       vlc_object_t *parent = vlc_object_parent(obj);
>       const char *str;
> @@ -93,33 +93,33 @@ static void PrintObjectPrefix(vlc_object_t *obj, bool last)
>       if (parent == NULL)
>           return;
>   
> -    PrintObjectPrefix(parent, false);
> +    PrintObjectPrefix(parent, output, false);
>   
>       if (ObjectIsLastChild(obj, parent))
>           str = last ? " \xE2\x94\x94" : "  ";
>       else
>           str = last ? " \xE2\x94\x9C" : " \xE2\x94\x82";
>   
> -    fputs(str, stdout);
> +    fputs(str, output);
>   }
>   
> -static void PrintObject(vlc_object_t *obj)
> +static void PrintObject(vlc_object_t *obj, FILE *output)
>   {
>       vlc_object_internals_t *priv = vlc_internals(obj);
>   
>       int canc = vlc_savecancel ();
>   
> -    PrintObjectPrefix(obj, true);
> -    printf("\xE2\x94\x80\xE2\x94%c\xE2\x95\xB4%p %s, %u refs\n",
> +    PrintObjectPrefix(obj, output, true);
> +    fprintf(output, "\xE2\x94\x80\xE2\x94%c\xE2\x95\xB4%p %s, %u refs\n",
>              ObjectHasChild(obj) ? 0xAC : 0x80,
>              (void *)obj, vlc_object_typename(obj), atomic_load(&priv->refs));
>   
>       vlc_restorecancel (canc);
>   }
>   
> -static void DumpStructure(vlc_object_t *obj, unsigned level)
> +static void DumpStructure(vlc_object_t *obj, FILE *output, unsigned level)
>   {
> -    PrintObject(obj);
> +    PrintObject(obj, output);
>   
>       if (unlikely(level > 100))
>       {
> @@ -131,7 +131,7 @@ static void DumpStructure(vlc_object_t *obj, unsigned level)
>   
>       vlc_mutex_assert(&tree_lock);
>       vlc_children_foreach(priv, vlc_internals(obj))
> -        DumpStructure(vlc_externals(priv), level + 1);
> +        DumpStructure(vlc_externals(priv), output, level + 1);
>   }
>   
>   /**
> @@ -148,7 +148,7 @@ static int TreeCommand (vlc_object_t *obj, char const *cmd,
>   
>       flockfile(stdout);
>       vlc_mutex_lock(&tree_lock);
> -    DumpStructure(obj, 0);
> +    DumpStructure(obj, stdout, 0);
>       vlc_mutex_unlock(&tree_lock);
>       funlockfile(stdout);
>       return VLC_SUCCESS;
> -- 
> 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