VLCMediaList.m: Don't mess between node hierachical and hierarchical cached copy...
authorPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 1 Jan 2008 16:08:00 +0000 (16:08 +0000)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Tue, 1 Jan 2008 16:08:00 +0000 (16:08 +0000)
extras/MacOSX/Framework/Headers/Public/VLCMediaList.h
extras/MacOSX/Framework/Sources/VLCMediaList.m

index ab78abc..6a96e44 100644 (file)
@@ -46,6 +46,7 @@ extern NSString * VLCMediaListItemDeleted;
     NSMutableArray *cachedMedia; /* We need that private copy because of Cocoa Bindings, that need to be working on first thread */
     VLCMediaListAspect * flatAspect;
     VLCMediaListAspect * hierarchicalAspect;
+    VLCMediaListAspect * hierarchicalNodeAspect;
 }
 
 /* Properties */
index 82e7b4a..596d120 100644 (file)
@@ -93,7 +93,7 @@ static void HandleMediaListItemDeleted( const libvlc_event_t * event, void * use
         
         // Initialize internals to defaults
         cachedMedia = [[NSMutableArray alloc] init];
-        delegate = flatAspect = hierarchicalAspect = nil;
+        delegate = flatAspect = hierarchicalAspect = hierarchicalNodeAspect = nil;
         [self initInternalMediaList];
     }
     return self;
@@ -123,6 +123,7 @@ static void HandleMediaListItemDeleted( const libvlc_event_t * event, void * use
     [cachedMedia release];
     [flatAspect release];
     [hierarchicalAspect release];
+    [hierarchicalNodeAspect release];
     [super dealloc];
 }
 
@@ -229,12 +230,12 @@ static void HandleMediaListItemDeleted( const libvlc_event_t * event, void * use
 
 - (VLCMediaListAspect *)hierarchicalNodeAspect
 {
-    if( hierarchicalAspect )
-        return hierarchicalAspect;
+    if( hierarchicalNodeAspect )
+        return hierarchicalNodeAspect;
     libvlc_media_list_view_t * p_mlv = libvlc_media_list_hierarchical_node_view( p_mlist, NULL );
-    hierarchicalAspect = [[VLCMediaListAspect mediaListAspectWithLibVLCMediaListView: p_mlv andMediaList:self] retain];
+    hierarchicalNodeAspect = [[VLCMediaListAspect mediaListAspectWithLibVLCMediaListView: p_mlv andMediaList:self] retain];
     libvlc_media_list_view_release( p_mlv );
-    return hierarchicalAspect;
+    return hierarchicalNodeAspect;
 }
 
 - (VLCMediaListAspect *)flatAspect