mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-28 23:09:59 +02:00
Introduce VLC_NORETURN function attribute and use it
Note that this attribute implies that the function never returns in any circumstances (it exits, it aborts or it gets cancelled). Do not use this attribute for function that do not return at the end but may return from other branches.
This commit is contained in:
parent
9fd4a6a6ba
commit
f7db1e80a3
@ -92,6 +92,7 @@
|
||||
# define VLC_FORMAT_ARG(x) __attribute__ ((format_arg(x)))
|
||||
|
||||
# define VLC_MALLOC __attribute__ ((malloc))
|
||||
# define VLC_NORETURN __attribute__ ((noreturn))
|
||||
|
||||
# if VLC_GCC_VERSION(3,4)
|
||||
# define VLC_USED __attribute__ ((warn_unused_result))
|
||||
@ -104,6 +105,7 @@
|
||||
# define VLC_FORMAT(x,y)
|
||||
# define VLC_FORMAT_ARG(x)
|
||||
# define VLC_MALLOC
|
||||
# define VLC_NORETURN
|
||||
# define VLC_USED
|
||||
#endif
|
||||
|
||||
|
@ -1554,6 +1554,7 @@ static int mms_HeaderMediaRead( access_t *p_access, int i_type )
|
||||
return -1;
|
||||
}
|
||||
|
||||
VLC_NORETURN
|
||||
static void *KeepAliveThread( void *p_data )
|
||||
{
|
||||
access_t *p_access = p_data;
|
||||
|
@ -1963,6 +1963,7 @@ static void TaskInterruptData( void *p_private )
|
||||
/*****************************************************************************
|
||||
*
|
||||
*****************************************************************************/
|
||||
VLC_NORETURN
|
||||
static void* TimeoutPrevention( void *p_data )
|
||||
{
|
||||
timeout_thread_t *p_timeout = (timeout_thread_t *)p_data;
|
||||
|
@ -112,6 +112,7 @@ static void Inhibit (vlc_inhibit_t *ih, bool suspend)
|
||||
|
||||
extern char **environ;
|
||||
|
||||
VLC_NORETURN
|
||||
static void *Thread (void *data)
|
||||
{
|
||||
vlc_inhibit_t *ih = data;
|
||||
|
@ -200,6 +200,7 @@ static void Close( vlc_object_t *p_this )
|
||||
/*****************************************************************************
|
||||
* Run: main thread
|
||||
*****************************************************************************/
|
||||
VLC_NORETURN
|
||||
static void *Run( void *data )
|
||||
{
|
||||
services_discovery_t *p_sd = data;
|
||||
|
@ -1018,6 +1018,7 @@ struct vlc_timer
|
||||
vlc_atomic_t overruns;
|
||||
};
|
||||
|
||||
VLC_NORETURN
|
||||
static void *vlc_timer_thread (void *data)
|
||||
{
|
||||
struct vlc_timer *timer = data;
|
||||
|
@ -170,6 +170,7 @@ static void AddressDestroy (sap_address_t *addr)
|
||||
* \param p_this the SAP Handler object
|
||||
* \return nothing
|
||||
*/
|
||||
VLC_NORETURN
|
||||
static void *RunThread (void *self)
|
||||
{
|
||||
sap_address_t *addr = self;
|
||||
|
@ -538,9 +538,7 @@ static void VoutDisplayEventMouse(vout_display_t *vd, int event, va_list args)
|
||||
vlc_mutex_unlock(&osys->lock);
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
static void *VoutDisplayEventKeyDispatch(void *data) __attribute__((noreturn));
|
||||
#endif
|
||||
VLC_NORETURN
|
||||
static void *VoutDisplayEventKeyDispatch(void *data)
|
||||
{
|
||||
vout_display_owner_sys_t *osys = data;
|
||||
|
Loading…
Reference in New Issue
Block a user