Numerous error fixes (vasprintf, asprintf, etc.) master
authorAustin Burrow <atburrow@gmail.com>
Tue, 17 Aug 2010 08:50:39 +0000 (03:50 -0500)
committerAustin Burrow <atburrow@gmail.com>
Tue, 17 Aug 2010 08:50:39 +0000 (03:50 -0500)
modules/control/upnp/connection-manager.c
modules/control/upnp/content-directory.c
modules/control/upnp/didl.c
modules/control/upnp/service.c
modules/control/upnp/upnp.c

index 657bb4d..600a5e7 100644 (file)
@@ -69,7 +69,7 @@ connection_manager_t* connection_manager_init( vlc_object_t* p_parent,
 void connection_manager_destroy( connection_manager_t* p_this )
 {
     service_destroy( p_this->p_service );
-    vlc_dictionary_clear( p_this->p_handlers );
+    vlc_dictionary_clear( p_this->p_handlers, NULL, NULL );
     free( p_this->p_handlers );
     free( p_this );
 }
index 6e4fb9b..9a9b5b3 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
+#ifndef _GNU_SOURCE
+#      define _GNU_SOURCE
+#endif
+
 #ifdef _HAVE_CONFIG_H
 #    include "config.h"
 #endif
@@ -31,8 +35,6 @@
 #include <upnp/upnp.h>
 #include <upnp/upnptools.h>
 
-#include <stdio.h>
-
 #include "content-directory.h"
 #include "service.h"
 #include "didl.h"
@@ -83,7 +85,7 @@ content_directory_t* content_directory_init( vlc_object_t* p_parent,
 void content_directory_destroy( content_directory_t* p_this )
 {
     service_destroy( p_this->p_service );
-    vlc_dictionary_clear( p_this->p_handlers );
+    vlc_dictionary_clear( p_this->p_handlers, NULL, NULL );
     free( p_this->p_handlers );
     free( p_this );
 }
@@ -132,20 +134,20 @@ static char* get_request_string_value( struct Upnp_Action_Request* p_ar,
 static didl_t* browse_metadata( vlc_object_t* p_this, int i_object_id )
 {
     didl_t* p_didl = didl_init( p_this );
-    playlist_t* p_playlist = pl_Yield( p_this );
+    playlist_t* p_playlist = pl_Get( p_this );
     playlist_item_t* p_item;
     
     if( i_object_id == 0 )
     {
-        pl_Release( p_this );
+//        pl_Release( p_this );
         didl_add_container( p_didl, p_playlist->current.i_size );
         didl_finalize( p_didl );
         return p_didl;
     }
 
-    if( !(p_item = playlist_ItemGetById( p_playlist, i_object_id, false )) )
+    if( !(p_item = playlist_ItemGetById( p_playlist, i_object_id )) )
     {
-        pl_Release( p_this );
+//        pl_Release( p_this );
         didl_finalize( p_didl );
         return p_didl;
     }
@@ -155,7 +157,7 @@ static didl_t* browse_metadata( vlc_object_t* p_this, int i_object_id )
         "http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01",
         p_item->p_input->psz_uri );
 
-    pl_Release( p_this );
+//    pl_Release( p_this );
     didl_finalize( p_didl );
 
     msg_Dbg( p_this, "DIDL: %s", didl_print( p_didl ) );
@@ -176,7 +178,7 @@ static didl_t* browse_direct_children( vlc_object_t* p_this,
         return p_didl;
     }
 
-    p_playlist = pl_Yield( p_this );
+    p_playlist = pl_Get( p_this );
     PL_LOCK;
 
     if( !i_start_index && !i_requested_count )
@@ -189,7 +191,7 @@ static didl_t* browse_direct_children( vlc_object_t* p_this,
             "http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01",
             p_playlist->current.p_elems[i]->p_input->psz_uri );
     PL_UNLOCK;
-    pl_Release( p_this );
+//    pl_Release( p_this );
     didl_finalize( p_didl );
 
     msg_Dbg( p_this, "Direct Children DIDL: %s", didl_print( p_didl ) );
@@ -216,8 +218,7 @@ static void handle_browse( void* ev, void* user_data )
         p_result = browse_direct_children( p_cds->p_parent, i_object_id,
                i_start_index, i_requested_count );
     
-    assert( ixmlNode_appendChild( (IXML_Node*) didl, (IXML_Node*) root ) ==
-            IXML_SUCCESS );
+//    assert( ixmlNode_appendChild( (IXML_Node*) psz_didl, (IXML_Node*) p_cds->p_parent ) == IXML_SUCCESS );
 
     psz_didl = didl_print( p_result );
     if( psz_didl )
index 6f424e9..0ea5459 100644 (file)
@@ -88,21 +88,10 @@ static char* didl_appendf( didl_t* p_didl, const char* psz_format, ... )
         return NULL;
 
     va_start( va_args, psz_format );
-    if ( ( i_len = vsprintf( NULL, psz_format, va_args ) ) < 0 )
+    if( vasprintf( &psz, psz_format, va_args ) == -1 )
         return NULL;
     va_end( va_args );
     
-    psz = malloc( i_len + 1 );
-    assert( psz );
-    
-    va_start( va_args, psz_format );
-    if ( ( i_len = vsprintf( psz, psz_format, va_args ) ) < 0 )
-    {
-        free( psz );
-        return NULL;
-    }
-    va_end( va_args );
-    
     psz_ret = didl_append_string( p_didl, psz );
     free( psz );
 
index 710d2cc..d46c893 100644 (file)
@@ -21,6 +21,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
+#define _GNU_SOURCE
+
 #include <vlc_common.h>
 #include <dlna.h>
 #include "service.h"
index 9ea3d45..45dd83f 100644 (file)
@@ -252,7 +252,7 @@ static void Run( intf_thread_t *p_intf )
             UPNP_E_SUCCESS )
         msg_Err( p_intf, "%s", UpnpGetErrorMessage( e ));
 
-    while( !intf_ShouldDie( p_intf ) )
+    while( vlc_object_alive( p_intf ) )
     {
         msleep( INTF_IDLE_SLEEP );
     }