Replace libvlc_exception_get_message with libvlc_errmsg
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 9 Aug 2009 17:08:02 +0000 (20:08 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 9 Aug 2009 17:08:02 +0000 (20:08 +0300)
(This is a bit hackish as the conversion is not completed)

12 files changed:
bin/vlc.c
include/vlc/libvlc.h
include/vlc/libvlc_structures.h
projects/activex/vlccontrol.h
projects/activex/vlccontrol2.cpp
projects/macosx/framework/Sources/VLCLibrary.m
projects/mozilla/control/npolibvlc.cpp
src/control/core.c
src/control/mediacontrol_core.c
src/control/mediacontrol_internal.h
src/libvlc.sym
test/libvlc/test.h

index 610da47..94465e6 100644 (file)
--- 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);
index f4663eb..1171dc8 100644 (file)
@@ -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 );
-
 /**@} */
 
 /*****************************************************************************
index 2b22915..4e5e1c5 100644 (file)
@@ -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;
 
 /**@} */
index 35e8fde..31b6919 100644 (file)
@@ -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;
     }
index 7e90e2a..2acec96 100644 (file)
@@ -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;
     }
index 2374141..d7d3d38 100644 (file)
@@ -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;
index f92e8c4..73d198e 100644 (file)
@@ -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;
             }
index 3a67a82..343efdd 100644 (file)
@@ -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;
 }
 
index 240c93f..9281ac0 100644 (file)
@@ -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;
         }
index 3e741ea..f248a8b 100644 (file)
@@ -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; }
 
index b41e214..b3fab43 100644 (file)
@@ -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
index 319318d..7ac1f20 100644 (file)
@@ -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);
 }