diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-07-06 10:33:01 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-07-06 10:39:46 +0000 |
commit | 9ce364b079efdb3bcef504a84e2460a9b2b4b9ad (patch) | |
tree | 54cb5cc97a940687b0a3405a25851c7cee8973ce | |
parent | 9ab356d3969779d7f8f4be6579bfa7570c703f21 (diff) | |
download | rainbows-9ce364b079efdb3bcef504a84e2460a9b2b4b9ad.tar.gz |
rb_str_slice_bang() allocates a new string internally and calls rb_str_aref_m() AND rb_str_aset_m(), too. String#[] just calls rb_str_aref_m() directly, so it's a much quicker code path. Also, "[]" methods dispatch faster under 1.9, too.
-rw-r--r-- | lib/rainbows/byte_slice.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/rainbows/byte_slice.rb b/lib/rainbows/byte_slice.rb index 09d1188..2d5586c 100644 --- a/lib/rainbows/byte_slice.rb +++ b/lib/rainbows/byte_slice.rb @@ -3,7 +3,7 @@ module Rainbows::ByteSlice if String.method_defined?(:encoding) def byte_slice(buf, range) if buf.encoding != Encoding::BINARY - buf.dup.force_encoding(Encoding::BINARY).slice!(range) + buf.dup.force_encoding(Encoding::BINARY)[range] else buf[range] end |