memory allocation optimization
This commit is contained in:
@@ -76,14 +76,10 @@ func (s *searchTracksIterator) Next() *subsonic.Child {
|
||||
}
|
||||
|
||||
// prefetch more search results from server
|
||||
if s.prefetched == nil {
|
||||
if len(s.prefetched) == 0 {
|
||||
results := s.searchIterBase.fetchResults()
|
||||
if results == nil {
|
||||
s.done = true
|
||||
s.trackIDset = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
if results != nil {
|
||||
// add results from songs search
|
||||
s.addNewTracks(results.Song)
|
||||
s.songOffset += len(results.Song)
|
||||
@@ -103,19 +99,23 @@ func (s *searchTracksIterator) Next() *subsonic.Child {
|
||||
s.addNewTracksFromAlbums(results.Album)
|
||||
s.albumOffset += len(results.Album)
|
||||
}
|
||||
}
|
||||
|
||||
// return from prefetched results
|
||||
if len(s.prefetched) > 0 {
|
||||
tr := s.prefetched[s.prefetchedPos]
|
||||
s.prefetchedPos++
|
||||
if s.prefetchedPos == len(s.prefetched) {
|
||||
s.prefetched = nil
|
||||
s.prefetched = s.prefetched[:0]
|
||||
s.prefetchedPos = 0
|
||||
}
|
||||
|
||||
return tr
|
||||
}
|
||||
|
||||
// no more results
|
||||
s.done = true
|
||||
s.prefetched = nil
|
||||
s.trackIDset = nil
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user