Changeset debed14afc143e80839ba97b92ea5be332c4ed51

Show
Ignore:
Timestamp:
05/29/08 21:30:36 (3 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1212089436 +0300
git-parent:

[6d9fde80110542d213ed6236efc134931da58066]

git-author:
Rémi Denis-Courmont <rem@videolan.org> 1212088122 +0300
Message:

Fix infinite loop

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/misc/objects.c

    r523ef30 rdebed14  
    340340        assert( p_global == vlc_global() ); 
    341341        /* Test for leaks */ 
    342         for( vlc_object_t *leaked = p_priv->next; 
    343              leaked != p_this; 
    344              leaked = vlc_internals (leaked)->next ) 
    345         { 
    346             /* We are leaking this object */ 
    347             fprintf( stderr, 
    348                      "ERROR: leaking object (id:%i, type:%s, name:%s)\n", 
    349                      leaked->i_object_id, leaked->psz_object_type, 
    350                      leaked->psz_object_name ); 
    351             /* Dump libvlc object to ease debugging */ 
    352             vlc_object_dump( leaked ); 
    353             fflush(stderr); 
    354         } 
    355  
    356         if( p_priv->next != p_this ) 
    357         { 
    358             /* Dump libvlc object to ease debugging */ 
     342        if (p_priv->next != p_this) 
     343        { 
     344            vlc_object_t *leaked = p_priv->next, *first = leaked; 
     345            do 
     346            { 
     347                /* We are leaking this object */ 
     348                fprintf( stderr, 
     349                         "ERROR: leaking object (id:%i, type:%s, name:%s)\n", 
     350                         leaked->i_object_id, leaked->psz_object_type, 
     351                         leaked->psz_object_name ); 
     352                /* Dump libvlc object to ease debugging */ 
     353                vlc_object_dump( leaked ); 
     354                fflush(stderr); 
     355                leaked = vlc_internals (leaked)->next; 
     356            } 
     357            while (leaked != first); 
     358 
     359            /* Dump global object to ease debugging */ 
    359360            vlc_object_dump( p_this ); 
    360361            /* Strongly abort, cause we want these to be fixed */