vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Apr 14 21:25:32 2019 +0300| [3d6f87369169037f557a301bb3c665269276aa70] | committer: Rémi Denis-Courmont
objects: make VLC_OBJECT() type-safe in C++ (again) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d6f87369169037f557a301bb3c665269276aa70 --- include/vlc_objects.h | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/include/vlc_objects.h b/include/vlc_objects.h index 908d7a3037..fc95150cea 100644 --- a/include/vlc_objects.h +++ b/include/vlc_objects.h @@ -64,10 +64,40 @@ struct vlc_common_members _Generic((x)->obj, \ struct vlc_common_members: (vlc_object_t *)(x) \ ) +# define vlc_object_cast(t) #else -# define VLC_OBJECT(x) ((vlc_object_t *)(x)) +# define vlc_object_cast(t) \ +struct t; \ +static inline struct vlc_object_t *VLC_OBJECT(struct t *d) \ +{ \ + return (struct vlc_object_t *)d; \ +} #endif +vlc_object_cast(vlc_object_t) +vlc_object_cast(libvlc_int_t) +vlc_object_cast(intf_thread_t) +vlc_object_cast(vlc_player_t) +vlc_object_cast(playlist_t) +vlc_object_cast(input_thread_t) +vlc_object_cast(stream_t) +vlc_object_cast(decoder_t) +vlc_object_cast(filter_t) +vlc_object_cast(audio_output) +vlc_object_cast(vout_thread_t) +vlc_object_cast(vout_display_t) +vlc_object_cast(vout_window_t) +vlc_object_cast(sout_instance_t) +vlc_object_cast(sout_stream_t) +vlc_object_cast(sout_access_out_t) +vlc_object_cast(extensions_manager_t) +vlc_object_cast(fingerprinter_thread_t) +vlc_object_cast(demux_meta_t) +vlc_object_cast(xml_t) +vlc_object_cast(services_discovery_t) +vlc_object_cast(vlc_renderer_discovery_t) +vlc_object_cast(vlc_medialibrary_module_t) + /***************************************************************************** * The vlc_object_t type. Yes, it's that simple :-) *****************************************************************************/ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
