=act Add putByteArrayUnsafe optimization to ByteStringBuilder

This commit is contained in:
Mathias 2014-04-17 14:22:30 +02:00 committed by Björn Antonsson
parent 917024319f
commit fc20042d03

View file

@ -566,9 +566,7 @@ final class ByteStringBuilder extends Builder[Byte, ByteString] {
_builder ++= bs.bytestrings _builder ++= bs.bytestrings
_length += bs.length _length += bs.length
case xs: WrappedArray.ofByte case xs: WrappedArray.ofByte
clearTemp() putByteArrayUnsafe(xs.array.clone)
_builder += ByteString1(xs.array.clone)
_length += xs.length
case seq: collection.IndexedSeq[_] case seq: collection.IndexedSeq[_]
ensureTempSize(_tempLength + xs.size) ensureTempSize(_tempLength + xs.size)
xs.copyToArray(_temp, _tempLength) xs.copyToArray(_temp, _tempLength)
@ -580,6 +578,13 @@ final class ByteStringBuilder extends Builder[Byte, ByteString] {
this 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. * Java API: append a ByteString to this builder.
*/ */