memory allocation optimization

This commit is contained in:
Drew Weymouth
2023-04-20 19:53:08 -07:00
parent 3521f62f28
commit ff1094c588
+8 -8
View File
@@ -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
} }