From 83b4e8360bcb89dfbd1f773a92fcde9e024a98ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Sun, 9 Aug 2009 20:08:02 +0300 Subject: [PATCH] Replace libvlc_exception_get_message with libvlc_errmsg (This is a bit hackish as the conversion is not completed) --- bin/vlc.c | 2 +- include/vlc/libvlc.h | 10 ----- include/vlc/libvlc_structures.h | 1 - projects/activex/vlccontrol.h | 3 +- projects/activex/vlccontrol2.cpp | 2 +- .../macosx/framework/Sources/VLCLibrary.m | 2 +- projects/mozilla/control/npolibvlc.cpp | 4 +- src/control/core.c | 37 +++++-------------- src/control/mediacontrol_core.c | 6 +-- src/control/mediacontrol_internal.h | 6 +-- src/libvlc.sym | 1 - test/libvlc/test.h | 5 +-- 12 files changed, 22 insertions(+), 57 deletions(-) diff --git a/bin/vlc.c b/bin/vlc.c index 610da477eb..94465e6542 100644 --- a/bin/vlc.c +++ b/bin/vlc.c @@ -166,7 +166,7 @@ int main( int i_argc, const char *ppsz_argv[] ) } i_ret = libvlc_exception_raised (&ex); if( i_ret ) - fprintf( stderr, "%s\n", libvlc_exception_get_message( &ex)); + fprintf( stderr, "%s\n", libvlc_errmsg() ); libvlc_exception_clear (&ex); libvlc_exception_clear (&dummy); diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h index f4663eb28f..1171dc8aaa 100644 --- a/include/vlc/libvlc.h +++ b/include/vlc/libvlc.h @@ -106,16 +106,6 @@ libvlc_exception_raise( libvlc_exception_t *p_exception, */ VLC_PUBLIC_API void libvlc_exception_clear( libvlc_exception_t * ); -/** - * Get an exception's message. - * - * \param p_exception the exception to query - * \return the exception message or NULL if not applicable (exception not - * raised, for example) - */ -VLC_PUBLIC_API const char * -libvlc_exception_get_message( const libvlc_exception_t *p_exception ); - /**@} */ /***************************************************************************** diff --git a/include/vlc/libvlc_structures.h b/include/vlc/libvlc_structures.h index 2b2291570c..4e5e1c5d4d 100644 --- a/include/vlc/libvlc_structures.h +++ b/include/vlc/libvlc_structures.h @@ -51,7 +51,6 @@ typedef struct libvlc_instance_t libvlc_instance_t; typedef struct libvlc_exception_t { int b_raised; - char *psz_message; } libvlc_exception_t; /**@} */ diff --git a/projects/activex/vlccontrol.h b/projects/activex/vlccontrol.h index 35e8fde8b7..31b6919fad 100644 --- a/projects/activex/vlccontrol.h +++ b/projects/activex/vlccontrol.h @@ -105,8 +105,7 @@ private: { if( ! libvlc_exception_raised(ex) ) return NOERROR; - _p_instance->setErrorInfo(IID_IVLCControl, - libvlc_exception_get_message(ex)); + _p_instance->setErrorInfo(IID_IVLCControl, libvlc_errmsg()); libvlc_exception_clear(ex); return E_FAIL; } diff --git a/projects/activex/vlccontrol2.cpp b/projects/activex/vlccontrol2.cpp index 7e90e2af37..2acec96e03 100644 --- a/projects/activex/vlccontrol2.cpp +++ b/projects/activex/vlccontrol2.cpp @@ -38,7 +38,7 @@ HRESULT _exception_bridge(VLCPlugin *p,REFIID riid, libvlc_exception_t *ex) { if( libvlc_exception_raised(ex) ) { - p->setErrorInfo(riid,libvlc_exception_get_message(ex)); + p->setErrorInfo(riid,libvlc_errmsg()); libvlc_exception_clear(ex); return E_FAIL; } diff --git a/projects/macosx/framework/Sources/VLCLibrary.m b/projects/macosx/framework/Sources/VLCLibrary.m index 237414186c..d7d3d38cbd 100644 --- a/projects/macosx/framework/Sources/VLCLibrary.m +++ b/projects/macosx/framework/Sources/VLCLibrary.m @@ -42,7 +42,7 @@ void __catch_exception( void * e, const char * function, const char * file, int NSException* libvlcException = [NSException exceptionWithName:@"LibVLCException" reason:[NSString stringWithFormat:@"libvlc has thrown us an error: %s (%s:%d %s)", - libvlc_exception_get_message( ex ), file, line_number, function] + libvlc_errmsg(), file, line_number, function] userInfo:nil]; libvlc_exception_clear( ex ); @throw libvlcException; diff --git a/projects/mozilla/control/npolibvlc.cpp b/projects/mozilla/control/npolibvlc.cpp index f92e8c46a9..73d198e1d2 100644 --- a/projects/mozilla/control/npolibvlc.cpp +++ b/projects/mozilla/control/npolibvlc.cpp @@ -42,7 +42,7 @@ #define RETURN_ON_EXCEPTION(this,ex) \ do { if( libvlc_exception_raised(&ex) ) \ { \ - NPN_SetException(this, libvlc_exception_get_message(&ex)); \ + NPN_SetException(this, libvlc_errmsg()); \ libvlc_exception_clear(&ex); \ return INVOKERESULT_GENERIC_ERROR; \ } } while(false) @@ -448,7 +448,7 @@ LibvlcInputNPObject::getProperty(int index, NPVariant &result) { if( index != ID_input_state ) { - NPN_SetException(this, libvlc_exception_get_message(&ex)); + NPN_SetException(this, libvlc_errmsg()); libvlc_exception_clear(&ex); return INVOKERESULT_GENERIC_ERROR; } diff --git a/src/control/core.c b/src/control/core.c index 3a67a82ba1..343efdd465 100644 --- a/src/control/core.c +++ b/src/control/core.c @@ -39,17 +39,14 @@ static const char nomemstr[] = "Insufficient memory"; void libvlc_exception_init( libvlc_exception_t *p_exception ) { p_exception->b_raised = 0; - p_exception->psz_message = NULL; } void libvlc_exception_clear( libvlc_exception_t *p_exception ) { if( NULL == p_exception ) return; - if( p_exception->psz_message != nomemstr ) - free( p_exception->psz_message ); - p_exception->psz_message = NULL; p_exception->b_raised = 0; + libvlc_clearerr (); } int libvlc_exception_raised( const libvlc_exception_t *p_exception ) @@ -57,16 +54,6 @@ int libvlc_exception_raised( const libvlc_exception_t *p_exception ) return (NULL != p_exception) && p_exception->b_raised; } -const char * -libvlc_exception_get_message( const libvlc_exception_t *p_exception ) -{ - if( p_exception->b_raised == 1 && p_exception->psz_message ) - { - return p_exception->psz_message; - } - return NULL; -} - static void libvlc_exception_not_handled( const char *psz ) { fprintf( stderr, "*** LibVLC Exception not handled: %s\nSet a breakpoint in '%s' to debug.\n", @@ -78,31 +65,27 @@ void libvlc_exception_raise( libvlc_exception_t *p_exception, const char *psz_format, ... ) { va_list args; - char * psz; + + /* Make sure that there is no unnoticed previous exception */ + if( p_exception && p_exception->b_raised ) + { + libvlc_exception_not_handled( libvlc_errmsg() ); + libvlc_exception_clear( p_exception ); + } /* Unformat-ize the message */ va_start( args, psz_format ); - if( vasprintf( &psz, psz_format, args ) == -1) - psz = (char *)nomemstr; + libvlc_vprinterr( psz_format, args ); va_end( args ); /* Does caller care about exceptions ? */ if( p_exception == NULL ) { /* Print something, so that lazy third-parties can easily * notice that something may have gone unnoticedly wrong */ - libvlc_exception_not_handled( psz ); - if( psz != nomemstr ) - free( psz ); + libvlc_exception_not_handled( libvlc_errmsg() ); return; } - /* Make sure that there is no unnoticed previous exception */ - if( p_exception->b_raised ) - { - libvlc_exception_not_handled( p_exception->psz_message ); - libvlc_exception_clear( p_exception ); - } - p_exception->psz_message = psz; p_exception->b_raised = 1; } diff --git a/src/control/mediacontrol_core.c b/src/control/mediacontrol_core.c index 240c93fb7d..9281ac06eb 100644 --- a/src/control/mediacontrol_core.c +++ b/src/control/mediacontrol_core.c @@ -349,8 +349,7 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self, if( libvlc_exception_raised( &ex ) ) { free( retval ); - RAISE( mediacontrol_InternalException, - libvlc_exception_get_message( &ex ) ); + RAISE( mediacontrol_InternalException, libvlc_errmsg( ) ); libvlc_exception_clear( &ex ); return NULL; } @@ -371,8 +370,7 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self, if( libvlc_exception_raised( &ex ) ) { free( retval ); - RAISE( mediacontrol_InternalException, - libvlc_exception_get_message( &ex ) ); + RAISE( mediacontrol_InternalException, libvlc_errmsg() ); libvlc_exception_clear( &ex ); return NULL; } diff --git a/src/control/mediacontrol_internal.h b/src/control/mediacontrol_internal.h index 3e741ea02f..f248a8b61f 100644 --- a/src/control/mediacontrol_internal.h +++ b/src/control/mediacontrol_internal.h @@ -61,17 +61,17 @@ mediacontrol_RGBPicture *private_mediacontrol_createRGBPicture( int, int, long, #define RAISE_VOID( c, m ) do{ RAISE( c, m ); return; } while(0) #define HANDLE_LIBVLC_EXCEPTION_VOID( e ) if( libvlc_exception_raised( e ) ) { \ - RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); \ + RAISE( mediacontrol_InternalException, libvlc_errmsg()); \ libvlc_exception_clear( e ); \ return; } #define HANDLE_LIBVLC_EXCEPTION_NULL( e ) if( libvlc_exception_raised( e ) ) { \ - RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); \ + RAISE( mediacontrol_InternalException, libvlc_errmsg()); \ libvlc_exception_clear( e ); \ return NULL; } #define HANDLE_LIBVLC_EXCEPTION_ZERO( e ) if( libvlc_exception_raised( e ) ) { \ - RAISE( mediacontrol_InternalException, libvlc_exception_get_message( e )); \ + RAISE( mediacontrol_InternalException, libvlc_errmsg()); \ libvlc_exception_clear( e ); \ return 0; } diff --git a/src/libvlc.sym b/src/libvlc.sym index b41e21481f..b3fab43fc3 100644 --- a/src/libvlc.sym +++ b/src/libvlc.sym @@ -31,7 +31,6 @@ libvlc_event_manager_release libvlc_event_send libvlc_event_type_name libvlc_exception_clear -libvlc_exception_get_message libvlc_exception_init libvlc_exception_raise libvlc_exception_raised diff --git a/test/libvlc/test.h b/test/libvlc/test.h index 319318d665..7ac1f20208 100644 --- a/test/libvlc/test.h +++ b/test/libvlc/test.h @@ -88,12 +88,9 @@ static inline void catch (void) { if (libvlc_exception_raised (&ex)) { - fprintf (stderr, "Exception: %s\n", - libvlc_exception_get_message (&ex)); + fprintf (stderr, "Exception: %s\n", libvlc_errmsg ()); abort (); } - - assert (libvlc_exception_get_message (&ex) == NULL); libvlc_exception_clear (&ex); } -- 2.39.2