vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Wed Mar 6 19:55:21 2019 +0200| [e529781d3a7252da5b3fbddba6e4249649985802] | committer: Rémi Denis-Courmont
objects: move documentation to header file > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e529781d3a7252da5b3fbddba6e4249649985802 --- include/vlc_objects.h | 28 +++++++++++++++++++++++----- src/misc/objects.c | 23 +++-------------------- 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/vlc_objects.h b/include/vlc_objects.h index b5ad73d907..843a321e71 100644 --- a/include/vlc_objects.h +++ b/include/vlc_objects.h @@ -83,13 +83,31 @@ struct libvlc_int_t struct vlc_common_members obj; }; -/***************************************************************************** - * Prototypes - *****************************************************************************/ +/** + * Allocates and initializes a vlc object. + * + * @param i_size object byte size + * + * @return the new object, or NULL on error. + */ VLC_API void *vlc_object_create( vlc_object_t *, size_t ) VLC_MALLOC VLC_USED; VLC_API vlc_object_t *vlc_object_find_name( vlc_object_t *, const char * ) VLC_USED VLC_DEPRECATED; -VLC_API void * vlc_object_hold( vlc_object_t * ); -VLC_API void vlc_object_release( vlc_object_t * ); + +/** + * Adds a weak reference to an object. + * + * This atomically increments the reference count of an object. + */ +VLC_API void * vlc_object_hold(vlc_object_t *obj); + +/** + * Drops a reference to an object. + * + * This atomically decrements the reference count. + * If the count reaches zero, the object is destroyed. + */ +VLC_API void vlc_object_release(vlc_object_t *obj); + VLC_API size_t vlc_list_children(vlc_object_t *, vlc_object_t **, size_t) VLC_USED; /** diff --git a/src/misc/objects.c b/src/misc/objects.c index a3da483307..1f92381c26 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -264,15 +264,7 @@ void *vlc_custom_create (vlc_object_t *parent, size_t length, return obj; } -#undef vlc_object_create -/** - * Allocates and initializes a vlc object. - * - * @param i_size object byte size - * - * @return the new object, or NULL on error. - */ -void *vlc_object_create( vlc_object_t *p_this, size_t i_size ) +void *(vlc_object_create)(vlc_object_t *p_this, size_t i_size) { return vlc_custom_create( p_this, i_size, "generic" ); } @@ -358,11 +350,7 @@ vlc_object_t *vlc_object_find_name( vlc_object_t *p_this, const char *psz_name ) return NULL; } -#undef vlc_object_hold -/** - * Increment an object reference counter. - */ -void * vlc_object_hold( vlc_object_t *p_this ) +void *(vlc_object_hold)(vlc_object_t *p_this) { vlc_object_internals_t *internals = vlc_internals( p_this ); unsigned refs = atomic_fetch_add_explicit(&internals->refs, 1, @@ -373,12 +361,7 @@ void * vlc_object_hold( vlc_object_t *p_this ) return p_this; } -#undef vlc_object_release -/** - * Drops a reference to an object (decrements the reference count). - * If the count reaches zero, the object is destroyed. - */ -void vlc_object_release (vlc_object_t *obj) +void (vlc_object_release)(vlc_object_t *obj) { vlc_object_internals_t *priv = vlc_internals(obj); unsigned refs = atomic_load_explicit(&priv->refs, memory_order_relaxed); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits