From fc20042d0355466a0d9ba714d735269d6556539e Mon Sep 17 00:00:00 2001 From: Mathias Date: Thu, 17 Apr 2014 14:22:30 +0200 Subject: [PATCH] =act Add `putByteArrayUnsafe` optimization to `ByteStringBuilder` --- akka-actor/src/main/scala/akka/util/ByteString.scala | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/akka-actor/src/main/scala/akka/util/ByteString.scala b/akka-actor/src/main/scala/akka/util/ByteString.scala index e14a86bb80..43a1847456 100644 --- a/akka-actor/src/main/scala/akka/util/ByteString.scala +++ b/akka-actor/src/main/scala/akka/util/ByteString.scala @@ -566,9 +566,7 @@ final class ByteStringBuilder extends Builder[Byte, ByteString] { _builder ++= bs.bytestrings _length += bs.length case xs: WrappedArray.ofByte ⇒ - clearTemp() - _builder += ByteString1(xs.array.clone) - _length += xs.length + putByteArrayUnsafe(xs.array.clone) case seq: collection.IndexedSeq[_] ⇒ ensureTempSize(_tempLength + xs.size) xs.copyToArray(_temp, _tempLength) @@ -580,6 +578,13 @@ final class ByteStringBuilder extends Builder[Byte, ByteString] { this } + private[akka] def putByteArrayUnsafe(xs: Array[Byte]): this.type = { + clearTemp() + _builder += ByteString1(xs) + _length += xs.length + this + } + /** * Java API: append a ByteString to this builder. */