diff options
author | PJ Fanning <fanningpj@apache.org> | 2019-09-14 11:42:42 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2019-09-14 11:42:42 +0000 |
commit | 9808fd501571043484bae8fb890722564c81ff0c (patch) | |
tree | 24e7c19a3543ff79791cd102477deb6fa632d614 /src/scratchpad | |
parent | b6220447d03c12786e40b377cdadb1db95ab87a2 (diff) | |
download | poi-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')
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); } |