library: Use track id directly

Calculating through the iterator may lead to unexpected problems.  We
already know the id of every database entry, so we might as well use it
directly.

Signed-off-by: Anna Schumaker <anna@ocarinaproject.net>
This commit is contained in:
Anna Schumaker 2014-04-09 19:28:04 -04:00
parent d28b3300f5
commit 8d29ce7169
1 changed files with 8 additions and 14 deletions

View File

@ -461,8 +461,6 @@ static void do_import_library(std::string &s)
void library :: init()
{
unsigned int i;
album_db.load();
artist_db.load();
genre_db.load();
@ -471,20 +469,17 @@ void library :: init()
Database<Track>::iterator it;
for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) {
i = (it - track_db.begin());
filter::add(artist_db.at((*it).artist_id)->name, i);
filter::add(album_db.at((*it).album_id)->name, i);
filter::add((*it).title, i);
filter::add(artist_db.at((*it).artist_id)->name, it->id);
filter::add(album_db.at((*it).album_id)->name, it->id);
filter::add((*it).title, it->id);
if (library_db.at((*it).library_id)->enabled)
get_callbacks()->on_library_track_add(i);
get_callbacks()->on_library_track_add(it->id);
}
Database<Library>::iterator l_it;
for (l_it = library_db.begin(); l_it != library_db.end(); l_it = library_db.next(l_it)) {
i = l_it - library_db.begin();
get_callbacks()->on_library_add(i, &(*library_db.at(i)));
}
for (l_it = library_db.begin(); l_it != library_db.end(); l_it = library_db.next(l_it))
get_callbacks()->on_library_add(l_it->id, &(*library_db.at(l_it->id)));
}
void library :: add_path(const std::string &dir)
@ -508,9 +503,8 @@ void library :: del_path(unsigned int id)
for (it = track_db.begin(); it != track_db.end(); it = track_db.next(it)) {
if ((*it).library_id == id) {
unsigned int track_id = it - track_db.begin();
get_callbacks()->on_library_track_del(track_id);
track_db.remove(track_id);
get_callbacks()->on_library_track_del(it->id);
track_db.remove(it->id);
}
}