Commit 19fe54b3 authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

macosx/framework: Fix a bunch of track related leaks.

parent bf144ba3
......@@ -61,6 +61,14 @@ NSString * VLCMediaPlayerStateToString(VLCMediaPlayerState state)
return stateToStrings[state];
}
static inline libvlc_track_description_t *freeAndGetNextTrack(libvlc_track_description_t *track)
{
libvlc_track_description_t *next = track->p_next;
free(track->psz_name);
free(track);
return next;
}
/* libvlc event callback */
static void HandleMediaInstanceVolumeChanged(const libvlc_event_t * event, void * self)
{
......@@ -321,10 +329,7 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
NSMutableArray *tempArray = [NSMutableArray array];
while (currentTrack) {
[tempArray addObject:[NSString stringWithUTF8String:currentTrack->psz_name]];
free(currentTrack->psz_name);
libvlc_track_description_t *tofree = currentTrack;
currentTrack = currentTrack->p_next;
free(tofree);
currentTrack = freeAndGetNextTrack(currentTrack);
}
return [NSArray arrayWithArray: tempArray];
}
......@@ -521,7 +526,7 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
for (i = 0; i < count ; i++)
{
[tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
tracks = tracks->p_next;
tracks = freeAndGetNextTrack(tracks);
}
return [NSArray arrayWithArray: tempArray];
}
......@@ -571,7 +576,7 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
for (i = 0; i < [self countOfTitles] ; i++)
{
[tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
tracks = tracks->p_next;
tracks = freeAndGetNextTrack(tracks);
}
return [NSArray arrayWithArray: tempArray];
}
......@@ -615,7 +620,7 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
for (i = 0; i < count ; i++)
{
[tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
tracks = tracks->p_next;
tracks = freeAndGetNextTrack(tracks);
}
return [NSArray arrayWithArray: tempArray];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment