Author: tilman
Date: Mon Apr 28 08:27:17 2025
New Revision: 1925300
URL: http://svn.apache.org/viewvc?rev=1925300&view=rev
Log:
PDFBOX-5996: Set size for ByteArrayOutputStreams, as suggested by Axel Howind
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java?rev=1925300&r1=1925299&r2=1925300&view=diff
==============================================================================
---
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
(original)
+++
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFSubsetter.java
Mon Apr 28 08:27:17 2025
@@ -227,7 +227,7 @@ public final class TTFSubsetter
private byte[] buildHeadTable() throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(54);
DataOutputStream out = new DataOutputStream(bos);
HeaderTable h = ttf.getHeader();
@@ -256,7 +256,7 @@ public final class TTFSubsetter
private byte[] buildHheaTable() throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(36);
DataOutputStream out = new DataOutputStream(bos);
HorizontalHeaderTable h = ttf.getHorizontalHeader();
@@ -300,7 +300,7 @@ public final class TTFSubsetter
private byte[] buildNameTable() throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(512);
DataOutputStream out = new DataOutputStream(bos);
NamingTable name = ttf.getNaming();
@@ -396,7 +396,7 @@ public final class TTFSubsetter
private byte[] buildMaxpTable() throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(32);
DataOutputStream out = new DataOutputStream(bos);
MaximumProfileTable p = ttf.getMaximumProfile();
@@ -430,7 +430,7 @@ public final class TTFSubsetter
return null;
}
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(78);
DataOutputStream out = new DataOutputStream(bos);
writeUint16(out, os2.getVersion());
@@ -478,7 +478,7 @@ public final class TTFSubsetter
// never returns null
private byte[] buildLocaTable(long[] newOffsets) throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new
ByteArrayOutputStream(newOffsets.length * 4);
DataOutputStream out = new DataOutputStream(bos);
for (long offset : newOffsets)
@@ -585,7 +585,7 @@ public final class TTFSubsetter
// never returns null
private byte[] buildGlyfTable(long[] newOffsets) throws IOException
{
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(512);
GlyphTable g = ttf.getGlyph();
long[] offsets = ttf.getIndexToLocation().getOffsets();
@@ -723,7 +723,7 @@ public final class TTFSubsetter
return null;
}
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(64);
DataOutputStream out = new DataOutputStream(bos);
// cmap header
@@ -843,7 +843,7 @@ public final class TTFSubsetter
return null;
}
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(64);
DataOutputStream out = new DataOutputStream(bos);
writeFixed(out, 2.0); // version
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java?rev=1925300&r1=1925299&r2=1925300&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
Mon Apr 28 08:27:17 2025
@@ -108,7 +108,6 @@ public final class COSString extends COS
*/
public static COSString parseHex(String hex) throws IOException
{
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
StringBuilder hexBuffer = new StringBuilder(hex.trim());
// if odd number then the last hex digit is assumed to be 0
@@ -118,6 +117,7 @@ public final class COSString extends COS
}
int length = hexBuffer.length();
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream((length + 1) /
2);
for (int i = 0; i < length; i += 2)
{
try
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1925300&r1=1925299&r2=1925300&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Mon Apr 28 08:27:17 2025
@@ -328,7 +328,7 @@ public abstract class PDFont implements
*/
public final byte[] encode(String text) throws IOException
{
- ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ByteArrayOutputStream out = new ByteArrayOutputStream(Math.max(32,
text.length()));
int offset = 0;
while (offset < text.length())
{
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java?rev=1925300&r1=1925299&r2=1925300&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
Mon Apr 28 08:27:17 2025
@@ -68,7 +68,7 @@ public final class CCITTFactory
int height = image.getHeight();
int width = image.getWidth();
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream(Math.max(32,
(width + 1) * height));
MemoryCacheImageOutputStream mcios = new
MemoryCacheImageOutputStream(bos);
for (int y = 0; y < height; ++y)
Modified:
pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java?rev=1925300&r1=1925299&r2=1925300&view=diff
==============================================================================
---
pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
(original)
+++
pdfbox/branches/2.0/tools/src/main/java/org/apache/pdfbox/tools/imageio/ImageIOUtil.java
Mon Apr 28 08:27:17 2025
@@ -388,7 +388,7 @@ public final class ImageIOUtil
{
byte[] data = profile.getData();
- ByteArrayOutputStream deflated = new ByteArrayOutputStream();
+ ByteArrayOutputStream deflated = new
ByteArrayOutputStream(Math.max(32, 2 * data.length));
DeflaterOutputStream deflater = new DeflaterOutputStream(deflated);
deflater.write(data);
deflater.close();