From 3a76adf065889787a300f5001126f3ca83731e27 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 24 Jan 2016 09:27:58 +0000 Subject: player: avoid allocation on sort Hash#keys already allocates a new array, so we may sort it in place without worrying about side effects and avoiding an extra allocation. --- lib/dtas/player.rb | 2 +- lib/dtas/player/client_handler.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/dtas/player.rb b/lib/dtas/player.rb index 461fcdb..32052be 100644 --- a/lib/dtas/player.rb +++ b/lib/dtas/player.rb @@ -115,7 +115,7 @@ class DTAS::Player # :nodoc: unless @sinks.empty? sinks = rv["sinks"] = [] # sort sinks by name for human viewability - @sinks.keys.sort.each do |name| + @sinks.keys.sort!.each do |name| sinks << @sinks[name].to_hsh end end diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index a4308ff..7ce9839 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -122,7 +122,7 @@ module DTAS::Player::ClientHandler # :nodoc: name = msg[1] case msg[0] when "ls" - io.emit(xs(@sinks.keys.sort)) + io.emit(xs(@sinks.keys.sort!)) when "rm" sink = @sinks.delete(name) or return io.emit("ERR #{name} not found") drop_sink(sink) @@ -484,7 +484,7 @@ module DTAS::Player::ClientHandler # :nodoc: __current_requeue return io.emit("OK") when "ls" - s = map.keys.sort { |a,b| map[a].tryorder <=> map[b].tryorder } + s = map.keys.sort! { |a,b| map[a].tryorder <=> map[b].tryorder } return io.emit(s.join(' ')) end -- cgit v1.2.3-24-ge0c7