mirror of https://github.com/apache/poi.git
try to avoid casting to int
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1866935 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
dc6a4a99e2
commit
b6220447d0
|
@ -104,7 +104,7 @@ public class HemfComment {
|
||||||
@Override
|
@Override
|
||||||
public long init(LittleEndianInputStream leis, long recordSize, long recordId) throws IOException {
|
public long init(LittleEndianInputStream leis, long recordSize, long recordId) throws IOException {
|
||||||
int startIdx = leis.getReadIndex();
|
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;
|
return leis.getReadIndex()-startIdx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,9 +198,9 @@ public class HemfComment {
|
||||||
// Valid comment identifier values are listed in the following table.
|
// 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
|
// 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.
|
// 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);
|
final boolean isEmfPublic = (commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
||||||
leis.reset();
|
leis.reset();
|
||||||
|
@ -211,7 +211,7 @@ public class HemfComment {
|
||||||
final EmfCommentData record = commentType.constructor.get();
|
final EmfCommentData record = commentType.constructor.get();
|
||||||
|
|
||||||
long readBytes = record.init(leis, dataSize);
|
long readBytes = record.init(leis, dataSize);
|
||||||
final int skipBytes = (int)(recordSize-4-readBytes);
|
final int skipBytes = Math.toIntExact(recordSize-4-readBytes);
|
||||||
assert (skipBytes >= 0);
|
assert (skipBytes >= 0);
|
||||||
leis.skipFully(skipBytes);
|
leis.skipFully(skipBytes);
|
||||||
|
|
||||||
|
@ -286,7 +286,7 @@ public class HemfComment {
|
||||||
long startIdx = leis.getReadIndex();
|
long startIdx = leis.getReadIndex();
|
||||||
int commentIdentifier = leis.readInt();
|
int commentIdentifier = leis.readInt();
|
||||||
assert (commentIdentifier == HemfCommentRecordType.emfPlus.id);
|
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;
|
return leis.getReadIndex()-startIdx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,14 +322,14 @@ public class HemfComment {
|
||||||
public long init(final LittleEndianInputStream leis, final long dataSize)
|
public long init(final LittleEndianInputStream leis, final long dataSize)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final int startIdx = leis.getReadIndex();
|
final int startIdx = leis.getReadIndex();
|
||||||
final int commentIdentifier = (int)leis.readUInt();
|
final int commentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
||||||
final int publicCommentIdentifier = (int)leis.readUInt();
|
final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(publicCommentIdentifier == HemfCommentRecordType.emfBeginGroup.id);
|
assert(publicCommentIdentifier == HemfCommentRecordType.emfBeginGroup.id);
|
||||||
HemfDraw.readRectL(leis, bounds);
|
HemfDraw.readRectL(leis, bounds);
|
||||||
|
|
||||||
// The number of Unicode characters in the optional description string that follows.
|
// 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);
|
byte[] buf = IOUtils.safelyAllocate(nDescription * 2L, MAX_RECORD_LENGTH);
|
||||||
leis.readFully(buf);
|
leis.readFully(buf);
|
||||||
|
@ -365,9 +365,9 @@ public class HemfComment {
|
||||||
public long init(final LittleEndianInputStream leis, final long dataSize)
|
public long init(final LittleEndianInputStream leis, final long dataSize)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final int startIdx = leis.getReadIndex();
|
final int startIdx = leis.getReadIndex();
|
||||||
final int commentIdentifier = (int)leis.readUInt();
|
final int commentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
||||||
final int publicCommentIdentifier = (int)leis.readUInt();
|
final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(publicCommentIdentifier == HemfCommentRecordType.emfEndGroup.id);
|
assert(publicCommentIdentifier == HemfCommentRecordType.emfEndGroup.id);
|
||||||
return leis.getReadIndex()-startIdx;
|
return leis.getReadIndex()-startIdx;
|
||||||
}
|
}
|
||||||
|
@ -391,14 +391,14 @@ public class HemfComment {
|
||||||
public long init(final LittleEndianInputStream leis, final long dataSize)
|
public long init(final LittleEndianInputStream leis, final long dataSize)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
final int startIdx = leis.getReadIndex();
|
final int startIdx = leis.getReadIndex();
|
||||||
final int commentIdentifier = (int)leis.readUInt();
|
final int commentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
||||||
final int publicCommentIdentifier = (int)leis.readUInt();
|
final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(publicCommentIdentifier == HemfCommentRecordType.emfMultiFormats.id);
|
assert(publicCommentIdentifier == HemfCommentRecordType.emfMultiFormats.id);
|
||||||
HemfDraw.readRectL(leis, bounds);
|
HemfDraw.readRectL(leis, bounds);
|
||||||
|
|
||||||
// A 32-bit unsigned integer that specifies the number of graphics formats contained in this record.
|
// 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++) {
|
for (int i=0; i<countFormats; i++) {
|
||||||
EmfCommentDataFormat fmt = new EmfCommentDataFormat();
|
EmfCommentDataFormat fmt = new EmfCommentDataFormat();
|
||||||
long readBytes = fmt.init(leis, dataSize, startIdx);
|
long readBytes = fmt.init(leis, dataSize, startIdx);
|
||||||
|
@ -533,9 +533,9 @@ public class HemfComment {
|
||||||
@Override
|
@Override
|
||||||
public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException {
|
public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException {
|
||||||
final int startIdx = leis.getReadIndex();
|
final int startIdx = leis.getReadIndex();
|
||||||
final int commentIdentifier = (int)leis.readUInt();
|
final int commentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
assert(commentIdentifier == HemfCommentRecordType.emfPublic.id);
|
||||||
final int publicCommentIdentifier = (int)leis.readUInt();
|
final int publicCommentIdentifier = Math.toIntExact(leis.readUInt());
|
||||||
assert(publicCommentIdentifier == HemfCommentRecordType.emfWMF.id);
|
assert(publicCommentIdentifier == HemfCommentRecordType.emfWMF.id);
|
||||||
|
|
||||||
// A 16-bit unsigned integer that specifies the WMF metafile version in terms
|
// 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
|
// A 32-bit unsigned integer that specifies the size, in bytes, of the
|
||||||
// WMF metafile in the WinMetafile field.
|
// WMF metafile in the WinMetafile field.
|
||||||
int winMetafileSize = (int)leis.readUInt();
|
int winMetafileSize = Math.toIntExact(leis.readUInt());
|
||||||
|
|
||||||
wmfData = IOUtils.safelyAllocate(winMetafileSize, MAX_RECORD_LENGTH);
|
wmfData = IOUtils.safelyAllocate(winMetafileSize, MAX_RECORD_LENGTH);
|
||||||
// some emf comments are truncated, so we don't use readFully here
|
// some emf comments are truncated, so we don't use readFully here
|
||||||
|
@ -586,8 +586,7 @@ public class HemfComment {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long init(final LittleEndianInputStream leis, final long dataSize)
|
public long init(final LittleEndianInputStream leis, final long dataSize) throws IOException {
|
||||||
throws IOException {
|
|
||||||
throw new RecordFormatException("UNICODE_STRING/UNICODE_END values are reserved in CommentPublic records");
|
throw new RecordFormatException("UNICODE_STRING/UNICODE_END values are reserved in CommentPublic records");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue