X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Flibvlc.c;h=7340e365f8634e003cca0401c586559986fbd691;hb=33a0f4dd254da4475aad732effac6a0e6e2e424e;hp=73a21e87200c7ef4a4b69be7958d1bd6083017c5;hpb=983add6389b3aec3796244e28dba6ecb76fcdb82;p=vlc diff --git a/src/libvlc.c b/src/libvlc.c index 73a21e8720..7340e365f8 100644 --- a/src/libvlc.c +++ b/src/libvlc.c @@ -105,6 +105,41 @@ static unsigned i_instances = 0; static bool b_daemon = false; +/***************************************************************************** + * vlc_gc_*. + *****************************************************************************/ +void __vlc_gc_incref( gc_object_t * p_gc ) +{ + assert( p_gc->i_gc_refcount > 0 ); + + /* FIXME: atomic version needed! */ + p_gc->i_gc_refcount ++; +} + +void __vlc_gc_decref( gc_object_t *p_gc ) +{ + assert( p_gc ); + assert( p_gc->i_gc_refcount > 0 ); + + /* FIXME: atomic version needed! */ + p_gc->i_gc_refcount -- ; + + if( p_gc->i_gc_refcount == 0 ) + { + p_gc->pf_destructor( p_gc ); + /* Do not use the p_gc pointer from now on ! */ + } +} + +void +__vlc_gc_init( gc_object_t * p_gc, void (*pf_destructor)( gc_object_t * ), + void * arg) +{ + p_gc->i_gc_refcount = 1; + p_gc->pf_destructor = pf_destructor; + p_gc->p_destructor_arg = arg; +} + /***************************************************************************** * Local prototypes *****************************************************************************/ @@ -1275,7 +1310,7 @@ static int GetFilenames( libvlc_int_t *p_vlc, int i_argc, const char *ppsz_argv[ static inline void print_help_on_full_help( void ) { utf8_fprintf( stdout, "\n" ); - utf8_fprintf( stdout, "To get a exhaustive help, use '-H'.\n" ); + utf8_fprintf( stdout, "%s\n", _("To get exhaustive help, use '-H'.") ); } static void Help( libvlc_int_t *p_this, char const *psz_help_name )