From 355a9162258baf4897d43d405094d940861b1236 Mon Sep 17 00:00:00 2001 From: Vincent Privat Date: Mon, 3 Nov 2025 18:24:30 +0100 Subject: [PATCH] Optimize buffer by allocating enough space up front --- .../twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java index 7fe3f071..aff9a29c 100755 --- a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java +++ b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderSpi.java @@ -140,7 +140,8 @@ public final class SVGImageReaderSpi extends ImageReaderSpiBase { } // Read the full tag name (may contain a prefix of any length) - ByteArrayOutputStream nameBuf = new ByteArrayOutputStream(); + final int MAX_TAG_NAME = 256; + ByteArrayOutputStream nameBuf = new ByteArrayOutputStream(MAX_TAG_NAME); // We already have 4 bytes in 'buffer' (from input.readFully(buffer)) int consumedFromBuffer = 0; @@ -153,7 +154,6 @@ public final class SVGImageReaderSpi extends ImageReaderSpiBase { } // If tag name not terminated yet, keep reading bytes (within limit) - final int MAX_TAG_NAME = 256; final boolean incompleteTagName = consumedFromBuffer == buffer.length; readBuffer(input, nameBuf, output -> incompleteTagName && output.size() < MAX_TAG_NAME, bb -> bb == '>' || Character.isWhitespace(bb) || bb == '/');