Changeset c865a653ad0a4341af807a2018c8686a4a1c5bf2

Show
Ignore:
Timestamp:
26/05/08 21:56:32 (6 months ago)
Author:
Rémi Denis-Courmont <rem@videolan.org>
git-committer:
Rémi Denis-Courmont <rem@videolan.org> 1211831792 +0300
git-parent:

[e72368e0d2c63c89a8e497442ae3c7e333dbfb54]

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

Only allow VLC_OBJECT_MODULE outside of p_libvlc

Speeds up vlc_list_find(), as we avoid looking up the 200+ plugins for
each vlc_list_find(). Also avoids accidentally stealing objects across
LibVLC instances. IMHO, the object tree should be per-instance, and the
root object should not exist, but that's too big a change yet.

Files:

Legend:

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

    r8486631 rc865a65  
    971971    { 
    972972    case FIND_ANYWHERE: 
    973         return vlc_list_find (vlc_global (), i_type, FIND_CHILD); 
     973        /* Modules should probably not be object, and the module should perhaps 
     974         * not be shared across LibVLC instances. In the mean time, this ugly 
     975         * hack is brought to you by Courmisch. */ 
     976        if (i_type == VLC_OBJECT_MODULE) 
     977            return vlc_list_find ((vlc_object_t *)vlc_global ()->p_module_bank, 
     978                                  i_type, FIND_CHILD); 
     979        return vlc_list_find (p_this->p_libvlc, i_type, FIND_CHILD); 
    974980 
    975981    case FIND_CHILD: