[vlc-devel] [PATCH] variables: simplify the access to/from vlc_object_t and vlc_object_internals_t

Steve Lhomme robux4 at gmail.com
Wed Jul 26 17:33:45 CEST 2017


Never mind it won't apply and a similar patch is now in master.

On Wed, Jul 26, 2017 at 5:27 PM, Steve Lhomme <robux4 at videolabs.io> wrote:
> From: Steve Lhomme <robUx4 at videolabs.io>
>
> Since we assume obj = priv + 1 that means we assume the offset between the 2
> structures is always sizeof(vlc_object_internals_t).
>
> --
> replaces https://patches.videolan.org/patch/17644/
> - more parenthesis
> https://patches.videolan.org/patch/17643/
> - not needed anymore
> ---
>  src/misc/variables.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/misc/variables.h b/src/misc/variables.h
> index bab14c8567..f477a309c7 100644
> --- a/src/misc/variables.h
> +++ b/src/misc/variables.h
> @@ -58,9 +58,9 @@ struct vlc_object_internals
>      max_align_t aligned_end[];
>  };
>
> -# define vlc_internals(obj) \
> -    container_of(VLC_OBJECT(obj), struct vlc_object_internals, aligned_end)
> -# define vlc_externals(priv ) ((vlc_object_t *)((priv)->aligned_end))
> +# define vlc_internals(obj)  (((vlc_object_internals_t*) (obj)) - 1)
> +# define vlc_externals(priv) \
> +    ((vlc_object_t *)(((vlc_object_internals_t*) (priv)) + 1))
>
>  void DumpVariables(vlc_object_t *obj);
>
> --
> 2.12.1
>


More information about the vlc-devel mailing list