add some checks to prevent ncmpcpp from segfaulting with mpd from git

This commit is contained in:
unK
2008-10-04 23:18:50 +02:00
parent 457452036b
commit 5c7b7a04e1

View File

@@ -447,7 +447,7 @@ int main(int argc, char *argv[])
sort(list.begin(), list.end(), CaseInsensitiveSorting()); sort(list.begin(), list.end(), CaseInsensitiveSorting());
for (TagList::const_iterator it = list.begin(); it != list.end(); it++) for (TagList::const_iterator it = list.begin(); it != list.end(); it++)
{ {
if (mLibArtists->Empty() || mLibArtists->Back() != *it) if ((mLibArtists->Empty() || mLibArtists->Back() != *it) && !it->empty())
mLibArtists->AddOption(*it); mLibArtists->AddOption(*it);
} }
mLibArtists->Window::Clear(); mLibArtists->Window::Clear();
@@ -476,6 +476,7 @@ int main(int argc, char *argv[])
Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->GetOption()); Mpd->AddSearch(Config.media_lib_primary_tag, mLibArtists->GetOption());
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it);
Mpd->CommitSearch(l); Mpd->CommitSearch(l);
if (!l.empty() && l[0]->GetAlbum() != UNKNOWN_ALBUM)
maplist[DisplaySong(*l[0], &Config.media_lib_album_format)] = *it; maplist[DisplaySong(*l[0], &Config.media_lib_album_format)] = *it;
FreeSongList(l); FreeSongList(l);
} }
@@ -611,6 +612,7 @@ int main(int argc, char *argv[])
Mpd->StartSearch(1); Mpd->StartSearch(1);
Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it); Mpd->AddSearch(MPD_TAG_ITEM_ALBUM, *it);
Mpd->CommitSearch(l); Mpd->CommitSearch(l);
if (!l.empty())
maplist[DisplaySong(*l[0], &Config.tag_editor_album_format)] = *it; maplist[DisplaySong(*l[0], &Config.tag_editor_album_format)] = *it;
FreeSongList(l); FreeSongList(l);
} }