From 5458d5a1adc85f7c1887408e578b0e734a954234 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Wed, 27 Feb 2008 00:59:05 +0000 Subject: [PATCH] misc/objects.c: Print more info about what was the parent or what were the children if vlc_object_destroy() failed. --- src/misc/objects.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/misc/objects.c b/src/misc/objects.c index a6db57f321..9ccb557d50 100644 --- a/src/misc/objects.c +++ b/src/misc/objects.c @@ -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(); } -- 2.39.2