]> git.sesse.net Git - vlc/commitdiff
macosx: fix purging of resume media data, avoid memleak
authorDavid Fuhrmann <dfuhrmann@videolan.org>
Thu, 22 May 2014 09:04:46 +0000 (11:04 +0200)
committerDavid Fuhrmann <dfuhrmann@videolan.org>
Thu, 22 May 2014 09:13:16 +0000 (11:13 +0200)
modules/gui/macosx/playlist.m

index 01735a7ab095f0fddd1bb8768418f64140e4251b..eee17e50288569decfe40ba2e459a9159b5193d8 100644 (file)
     [o_columnArray addObject: [NSArray arrayWithObjects:TITLE_COLUMN, [NSNumber numberWithFloat:190.], nil]];
     [o_columnArray addObject: [NSArray arrayWithObjects:ARTIST_COLUMN, [NSNumber numberWithFloat:95.], nil]];
     [o_columnArray addObject: [NSArray arrayWithObjects:DURATION_COLUMN, [NSNumber numberWithFloat:95.], nil]];
-    NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:[NSArray arrayWithArray:o_columnArray] forKey: @"PlaylistColumnSelection"];
+
+    NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
+                                 [NSArray arrayWithArray:o_columnArray], @"PlaylistColumnSelection",
+                                 [NSArray array], @"recentlyPlayedMediaList",
+                                 [NSDictionary dictionary], @"recentlyPlayedMedia", nil];
 
     [defaults registerDefaults:appDefaults];
     [o_columnArray release];
     float f_current_pos = 100. * pos.f_float;
     long long int dur = input_item_GetDuration(p_item) / 1000000;
     int current_pos_in_sec = (f_current_pos * dur) / 100;
-    NSMutableArray *mediaList = [defaults objectForKey:@"recentlyPlayedMediaList"];
+    NSMutableArray *mediaList = [[defaults objectForKey:@"recentlyPlayedMediaList"] mutableCopy];
 
     if (pos.f_float > .05 && pos.f_float < .95 && dur > 180) {
         [mutDict setObject:[NSNumber numberWithInt:current_pos_in_sec] forKey:url];
     [defaults setObject:mutDict forKey:@"recentlyPlayedMedia"];
     [defaults setObject:mediaList forKey:@"recentlyPlayedMediaList"];
     [defaults synchronize];
+
+    [mutDict release];
+    [mediaList release];
 }
 
 @end