]> git.sesse.net Git - vlc/commitdiff
misc/objects.c: Print more info about what was the parent or what were the children...
authorPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 27 Feb 2008 00:59:05 +0000 (00:59 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Wed, 27 Feb 2008 00:59:05 +0000 (00:59 +0000)
src/misc/objects.c

index a6db57f32135755fda747a9103bcae67cc2d7e22..9ccb557d5073c4c45152d81334b5830b61108a07 100644 (file)
@@ -362,23 +362,36 @@ static void vlc_object_destroy( vlc_object_t *p_this )
     /* FIXME: ugly hack - we cannot use the message queue after
          * msg_Destroy(). */
     vlc_object_t *logger = p_this;
-    if( p_this->p_libvlc == p_this )
+    if( (vlc_object_t *)p_this->p_libvlc == p_this )
         logger = NULL;
 
     if( p_this->i_children )
     {
-        fprintf( stderr,
-                  "ERROR: cannot delete object (%i, %s) with children\n",
-                  p_this->i_object_id, p_this->psz_object_name );
+        int i;
+
+        fprintf( stderr, "ERROR: cannot delete object (%i, %s) with %d children\n",
+                          p_this->i_object_id, p_this->psz_object_name, p_this->i_children );
+
+        for( i = 0; i < p_this->i_children; i++ )
+        {
+            fprintf( stderr, "ERROR: Remaining children object (id:%i, type:%s, name:%s)\n",
+                              p_this->pp_children[i]->i_object_id,
+                              p_this->pp_children[i]->psz_object_type,
+                              p_this->pp_children[i]->psz_object_name );
+        }
         fflush(stderr);
         abort();
     }
 
     if( p_this->p_parent )
     {
-        fprintf( stderr,
-                  "ERROR: cannot delete object (%i, %s) with a parent\n",
-                  p_this->i_object_id, p_this->psz_object_name );
+        fprintf( stderr, "ERROR: cannot delete object (id:%i, type:%s, name:%s) with a parent (id:%i, type:%s, name:%s)\n",
+                          p_this->i_object_id,
+                          p_this->psz_object_type,
+                          p_this->psz_object_name,
+                          p_this->p_parent->i_object_id,
+                          p_this->p_parent->psz_object_type,
+                          p_this->p_parent->psz_object_name );
         fflush(stderr);
         abort();
     }