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