diff options
author | PJ Fanning <fanningpj@apache.org> | 2019-09-14 10:11:41 +0000 |
---|---|---|
committer | PJ Fanning <fanningpj@apache.org> | 2019-09-14 10:11:41 +0000 |
commit | b6220447d03c12786e40b377cdadb1db95ab87a2 (patch) | |
tree | 792f4bf1d81b471cac5f4011efb5eef437d3fa3d | |
parent | dc6a4a99e2d077ff9c9a343e218070d4df14d48d (diff) | |
download | poi-b6220447d03c12786e40b377cdadb1db95ab87a2.tar.gz poi-b6220447d03c12786e40b377cdadb1db95ab87a2.zip |
try to avoid casting to int
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1866935 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java | 35 |
1 files changed, 17 insertions, 18 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 70df41135a..514923c679 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 @@ -104,7 +104,7 @@ public class HemfComment { @Override public long init(LittleEndianInputStream leis, long recordSize, long recordId) throws IOException { int startIdx = leis.getReadIndex(); - data = new EmfCommentDataIterator(leis, (int)recordSize, true).next(); + data = new EmfCommentDataIterator(leis, Math.toIntExact(recordSize), true).next(); return leis.getReadIndex()-startIdx; } @@ -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 = (int)leis.readUInt(); + final int commentIdentifier = Math.toIntExact(leis.readUInt()); // A 32-bit unsigned integer that identifies the type of public comment record. - final int publicCommentIdentifier = (int)leis.readUInt(); + final int publicCommentIdentifier = Math.toIntExact(leis.readUInt()); final boolean isEmfPublic = (commentIdentifier == HemfCommentRecordType.emfPublic.id); leis.reset(); @@ -211,7 +211,7 @@ public class HemfComment { final EmfCommentData record = commentType.constructor.get(); long readBytes = record.init(leis, dataSize); - final int skipBytes = (int)(recordSize-4-readBytes); + final int skipBytes = Math.toIntExact(recordSize-4-readBytes); assert (skipBytes >= 0); leis.skipFully(skipBytes); @@ -286,7 +286,7 @@ public class HemfComment { long startIdx = leis.getReadIndex(); int commentIdentifier = leis.readInt(); assert (commentIdentifier == HemfCommentRecordType.emfPlus.id); - new HemfPlusRecordIterator(leis, (int)dataSize-LittleEndianConsts.INT_SIZE).forEachRemaining(records::add); + new HemfPlusRecordIterator(leis, Math.toIntExact(dataSize-LittleEndianConsts.INT_SIZE)).forEachRemaining(records::add); return leis.getReadIndex()-startIdx; } @@ -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 = (int)leis.readUInt(); + final int commentIdentifier = Math.toIntExact(leis.readUInt()); assert(commentIdentifier == HemfCommentRecordType.emfPublic.id); - final int publicCommentIdentifier = (int)leis.readUInt(); + final int publicCommentIdentifier = Math.toIntExact(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 = (int)leis.readUInt(); + int nDescription = Math.toIntExact(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 = (int)leis.readUInt(); + final int commentIdentifier = Math.toIntExact(leis.readUInt()); assert(commentIdentifier == HemfCommentRecordType.emfPublic.id); - final int publicCommentIdentifier = (int)leis.readUInt(); + final int publicCommentIdentifier = Math.toIntExact(leis.readUInt()); assert(publicCommentIdentifier == HemfCommentRecordType.emfEndGroup.id); return leis.getReadIndex()-startIdx; } @@ -391,14 +391,14 @@ public class HemfComment { public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException { final int startIdx = leis.getReadIndex(); - final int commentIdentifier = (int)leis.readUInt(); + final int commentIdentifier = Math.toIntExact(leis.readUInt()); assert(commentIdentifier == HemfCommentRecordType.emfPublic.id); - final int publicCommentIdentifier = (int)leis.readUInt(); + final int publicCommentIdentifier = Math.toIntExact(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 = (int)leis.readUInt(); + int countFormats = Math.toIntExact(leis.readUInt()); for (int i=0; i<countFormats; i++) { EmfCommentDataFormat fmt = new EmfCommentDataFormat(); long readBytes = fmt.init(leis, dataSize, startIdx); @@ -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 = (int)leis.readUInt(); + final int commentIdentifier = Math.toIntExact(leis.readUInt()); assert(commentIdentifier == HemfCommentRecordType.emfPublic.id); - final int publicCommentIdentifier = (int)leis.readUInt(); + final int publicCommentIdentifier = Math.toIntExact(leis.readUInt()); assert(publicCommentIdentifier == HemfCommentRecordType.emfWMF.id); // A 16-bit unsigned integer that specifies the WMF metafile version in terms @@ -553,7 +553,7 @@ public class HemfComment { // A 32-bit unsigned integer that specifies the size, in bytes, of the // WMF metafile in the WinMetafile field. - int winMetafileSize = (int)leis.readUInt(); + int winMetafileSize = Math.toIntExact(leis.readUInt()); wmfData = IOUtils.safelyAllocate(winMetafileSize, MAX_RECORD_LENGTH); // some emf comments are truncated, so we don't use readFully here @@ -586,8 +586,7 @@ public class HemfComment { } @Override - public long init(final LittleEndianInputStream leis, final long dataSize) - throws IOException { + public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException { throw new RecordFormatException("UNICODE_STRING/UNICODE_END values are reserved in CommentPublic records"); } |