From: Axel Howind Date: Thu, 22 Feb 2024 15:44:31 +0000 (+0000) Subject: do not write single bytes X-Git-Tag: REL_5_3_0~91 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e65e666ece268e88295b0b1e6862ca1d663ec2aa;p=poi.git do not write single bytes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915953 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/Zip64Impl.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/Zip64Impl.java index 706004912d..d2e00f56ed 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/Zip64Impl.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/Zip64Impl.java @@ -145,9 +145,10 @@ class Zip64Impl { * Writes a 16-bit short to the output stream in little-endian byte order. */ private void writeShort(int v) throws IOException { - OutputStream out = this.out; - out.write((v >>> 0) & 0xff); - out.write((v >>> 8) & 0xff); + out.write(new byte[]{ + (byte) ((v >>> 0) & 0xff), + (byte) ((v >>> 8) & 0xff) + }); written += 2; } @@ -155,11 +156,12 @@ class Zip64Impl { * Writes a 32-bit int to the output stream in little-endian byte order. */ private void writeInt(long v) throws IOException { - OutputStream out = this.out; - out.write((int) ((v >>> 0) & 0xff)); - out.write((int) ((v >>> 8) & 0xff)); - out.write((int) ((v >>> 16) & 0xff)); - out.write((int) ((v >>> 24) & 0xff)); + out.write(new byte[]{ + (byte) ((v >>> 0) & 0xff), + (byte) ((v >>> 8) & 0xff), + (byte) ((v >>> 16) & 0xff), + (byte) ((v >>> 24) & 0xff) + }); written += 4; } @@ -167,17 +169,17 @@ class Zip64Impl { * Writes a 64-bit int to the output stream in little-endian byte order. */ private void writeLong(long v) throws IOException { - OutputStream out = this.out; - out.write((int) ((v >>> 0) & 0xff)); - out.write((int) ((v >>> 8) & 0xff)); - out.write((int) ((v >>> 16) & 0xff)); - out.write((int) ((v >>> 24) & 0xff)); - out.write((int) ((v >>> 32) & 0xff)); - out.write((int) ((v >>> 40) & 0xff)); - out.write((int) ((v >>> 48) & 0xff)); - out.write((int) ((v >>> 56) & 0xff)); + out.write(new byte[]{ + (byte) ((v >>> 0) & 0xff), + (byte) ((v >>> 8) & 0xff), + (byte) ((v >>> 16) & 0xff), + (byte) ((v >>> 24) & 0xff), + (byte) ((v >>> 32) & 0xff), + (byte) ((v >>> 40) & 0xff), + (byte) ((v >>> 48) & 0xff), + (byte) ((v >>> 56) & 0xff) + }); written += 8; } } -