From e6a9786b7aa4e3353dbf11751def50748965fd60 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 22 Feb 2016 14:58:27 +0100 Subject: [PATCH] minor bytebuffer allocation optimization --- .../crypto/engine/impl/FileContentEncryptorImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentEncryptorImpl.java b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentEncryptorImpl.java index 6310a8b4d..3f3e623bd 100644 --- a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentEncryptorImpl.java +++ b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentEncryptorImpl.java @@ -87,11 +87,13 @@ class FileContentEncryptorImpl implements FileContentEncryptor { private void appendSizeObfuscationPadding(long actualSize) throws InterruptedException { final int maxPaddingLength = (int) Math.min(Math.max(actualSize / 10, PADDING_LOWER_BOUND), PADDING_UPPER_BOUND); // preferably 10%, but at least lower bound and no more than upper bound final int randomPaddingLength = randomSource.nextInt(maxPaddingLength); + final ByteBuffer buf = ByteBuffer.allocate(PAYLOAD_SIZE); int remainingPadding = randomPaddingLength; while (remainingPadding > 0) { - ByteBuffer buf = ByteBuffer.allocate(Math.min(remainingPadding, PAYLOAD_SIZE)); + int bytesInCurrentIteration = Math.min(remainingPadding, PAYLOAD_SIZE); + buf.clear().limit(bytesInCurrentIteration); appendAllAndSubmitIfFull(buf); - remainingPadding -= buf.capacity(); + remainingPadding -= bytesInCurrentIteration; } }