aboutsummaryrefslogtreecommitdiffstats
path: root/src/scratchpad
diff options
context:
space:
mode:
authorPJ Fanning <fanningpj@apache.org>2019-09-14 11:42:42 +0000
committerPJ Fanning <fanningpj@apache.org>2019-09-14 11:42:42 +0000
commit9808fd501571043484bae8fb890722564c81ff0c (patch)
tree24e7c19a3543ff79791cd102477deb6fa632d614 /src/scratchpad
parentb6220447d03c12786e40b377cdadb1db95ab87a2 (diff)
downloadpoi-9808fd501571043484bae8fb890722564c81ff0c.tar.gz
poi-9808fd501571043484bae8fb890722564c81ff0c.zip
try to fix build failure
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1866941 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/scratchpad')
-rw-r--r--src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java26
-rw-r--r--src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java3
-rw-r--r--src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfRecordIterator.java2
3 files changed, 16 insertions, 15 deletions
diff --git a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
index 514923c679..4b572daaca 100644
--- a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
+++ b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
@@ -198,9 +198,9 @@ public class HemfComment {
// Valid comment identifier values are listed in the following table.
//
// If this field contains any other value, the comment record MUST be an EMR_COMMENT record
- final int commentIdentifier = Math.toIntExact(leis.readUInt());
+ final long commentIdentifier = leis.readUInt();
// A 32-bit unsigned integer that identifies the type of public comment record.
- final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
+ final long publicCommentIdentifier = leis.readUInt();
final boolean isEmfPublic = (commentIdentifier == HemfCommentRecordType.emfPublic.id);
leis.reset();
@@ -322,14 +322,14 @@ public class HemfComment {
public long init(final LittleEndianInputStream leis, final long dataSize)
throws IOException {
final int startIdx = leis.getReadIndex();
- final int commentIdentifier = Math.toIntExact(leis.readUInt());
+ final long commentIdentifier = leis.readUInt();
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
- final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
+ final long publicCommentIdentifier = leis.readUInt();
assert(publicCommentIdentifier == HemfCommentRecordType.emfBeginGroup.id);
HemfDraw.readRectL(leis, bounds);
// The number of Unicode characters in the optional description string that follows.
- int nDescription = Math.toIntExact(leis.readUInt());
+ long nDescription = leis.readUInt();
byte[] buf = IOUtils.safelyAllocate(nDescription * 2L, MAX_RECORD_LENGTH);
leis.readFully(buf);
@@ -365,9 +365,9 @@ public class HemfComment {
public long init(final LittleEndianInputStream leis, final long dataSize)
throws IOException {
final int startIdx = leis.getReadIndex();
- final int commentIdentifier = Math.toIntExact(leis.readUInt());
+ final long commentIdentifier = leis.readUInt();
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
- final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
+ final long publicCommentIdentifier = leis.readUInt();
assert(publicCommentIdentifier == HemfCommentRecordType.emfEndGroup.id);
return leis.getReadIndex()-startIdx;
}
@@ -391,15 +391,15 @@ public class HemfComment {
public long init(final LittleEndianInputStream leis, final long dataSize)
throws IOException {
final int startIdx = leis.getReadIndex();
- final int commentIdentifier = Math.toIntExact(leis.readUInt());
+ final long commentIdentifier = leis.readUInt();
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
- final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
+ final long publicCommentIdentifier = leis.readUInt();
assert(publicCommentIdentifier == HemfCommentRecordType.emfMultiFormats.id);
HemfDraw.readRectL(leis, bounds);
// A 32-bit unsigned integer that specifies the number of graphics formats contained in this record.
- int countFormats = Math.toIntExact(leis.readUInt());
- for (int i=0; i<countFormats; i++) {
+ long countFormats = leis.readUInt();
+ for (long pos = 0; pos < countFormats; pos++) {
EmfCommentDataFormat fmt = new EmfCommentDataFormat();
long readBytes = fmt.init(leis, dataSize, startIdx);
formats.add(fmt);
@@ -533,9 +533,9 @@ public class HemfComment {
@Override
public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException {
final int startIdx = leis.getReadIndex();
- final int commentIdentifier = Math.toIntExact(leis.readUInt());
+ final long commentIdentifier = leis.readUInt();
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
- final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
+ final long publicCommentIdentifier = leis.readUInt();
assert(publicCommentIdentifier == HemfCommentRecordType.emfWMF.id);
// A 16-bit unsigned integer that specifies the WMF metafile version in terms
diff --git a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java
index e32fde84e9..1e037c0590 100644
--- a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java
+++ b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfMisc.java
@@ -32,6 +32,7 @@ import java.util.Map;
import java.util.function.Function;
import java.util.function.Supplier;
+import org.apache.commons.math3.util.ArithmeticUtils;
import org.apache.poi.hemf.draw.HemfDrawProperties;
import org.apache.poi.hemf.draw.HemfGraphics;
import org.apache.poi.hwmf.draw.HwmfDrawProperties;
@@ -900,7 +901,7 @@ public class HemfMisc {
// contains a DIB.
int cbBits = (int) leis.readUInt();
- int size = 6 * LittleEndianConsts.INT_SIZE;
+ int size = ArithmeticUtils.mulAndCheck(6, LittleEndianConsts.INT_SIZE);
size += readBitmap(leis, bitmap, startIdx, offBmi, cbBmi, offBits, cbBits);
diff --git a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfRecordIterator.java b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfRecordIterator.java
index dfa68670e1..da7b1112c7 100644
--- a/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfRecordIterator.java
+++ b/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfRecordIterator.java
@@ -75,7 +75,7 @@ public class HemfRecordIterator implements Iterator<HemfRecord> {
long remBytes = recordSize-HEADER_SIZE;
long readBytes = record.init(stream, remBytes, recordId);
assert (readBytes <= remBytes);
- stream.skipFully((int)(remBytes-readBytes));
+ stream.skipFully(Math.toIntExact(remBytes-readBytes));
} catch (IOException|RuntimeException e) {
throw new RecordFormatException(e);
}