You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/10/21 10:08:35 UTC
svn commit: r1894438 -
/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java
Author: fanningpj
Date: Thu Oct 21 10:08:35 2021
New Revision: 1894438
URL: http://svn.apache.org/viewvc?rev=1894438&view=rev
Log:
[bug-65639] increase max size of HSLF font data and try to cache the FontHeader instance
Modified:
poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java
Modified: poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java?rev=1894438&r1=1894437&r2=1894438&view=diff
==============================================================================
--- poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java (original)
+++ poi/trunk/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/FontEmbeddedData.java Thu Oct 21 10:08:35 2021
@@ -31,8 +31,8 @@ import org.apache.poi.util.LittleEndian;
@SuppressWarnings("WeakerAccess")
public class FontEmbeddedData extends RecordAtom implements FontFacet {
- //arbitrarily selected; may need to increase
- private static final int MAX_RECORD_LENGTH = 1_000_000;
+ //arbitrarily selected; may need to increase (increased due to https://bz.apache.org/bugzilla/show_bug.cgi?id=65639)
+ private static final int MAX_RECORD_LENGTH = 5_000_000;
/**
* Record header.
@@ -45,6 +45,11 @@ public class FontEmbeddedData extends Re
private byte[] _data;
/**
+ * A cached FontHeader so that we don't keep creating new FontHeader instances
+ */
+ private FontHeader fontHeader;
+
+ /**
* Constructs a brand new font embedded record.
*/
/* package */ FontEmbeddedData() {
@@ -87,14 +92,18 @@ public class FontEmbeddedData extends Re
}
public void setFontData(byte[] fontData) {
+ fontHeader = null;
_data = fontData.clone();
LittleEndian.putInt(_header, 4, _data.length);
}
public FontHeader getFontHeader() {
- FontHeader h = new FontHeader();
- h.init(_data, 0, _data.length);
- return h;
+ if (fontHeader == null) {
+ FontHeader h = new FontHeader();
+ h.init(_data, 0, _data.length);
+ fontHeader = h;
+ }
+ return fontHeader;
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org