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. */