aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java8
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java4
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java6
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java15
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java2
5 files changed, 13 insertions, 22 deletions
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java
index ec0ac8e465..f2fc063258 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusBrush.java
@@ -709,7 +709,7 @@ public class HemfPlusBrush {
// that appears at the center point of the brush. The color of the brush changes gradually from the
// boundary color to the center color as it moves from the boundary to the center point.
centerColor = readARGB(leis.readInt());
- int size = 3*LittleEndianConsts.INT_SIZE;
+ long size = 3*LittleEndianConsts.INT_SIZE;
if (wrapMode == null) {
return size;
@@ -785,7 +785,7 @@ public class HemfPlusBrush {
size += 3*LittleEndianConsts.INT_SIZE;
}
- return size;
+ return Math.toIntExact(size);
}
@Override
@@ -846,7 +846,7 @@ public class HemfPlusBrush {
// across a shape, when the image is smaller than the area being filled.
wrapMode = EmfPlusWrapMode.valueOf(leis.readInt());
- int size = 2*LittleEndianConsts.INT_SIZE;
+ long size = 2*LittleEndianConsts.INT_SIZE;
if (TRANSFORM.isSet(dataFlags)) {
size += readXForm(leis, (brushTransform = new AffineTransform()));
@@ -856,7 +856,7 @@ public class HemfPlusBrush {
size += (image = new EmfPlusImage()).init(leis, dataSize-size, EmfPlusObjectType.IMAGE, 0);
}
- return size;
+ return Math.toIntExact(size);
}
@Override
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java
index 1e04c5524e..2553102d11 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusObject.java
@@ -174,7 +174,7 @@ public class HemfPlusObject {
EmfPlusObjectType objectType = getObjectType();
assert (objectType != null);
- int size = 0;
+ long size = 0;
totalObjectSize = 0;
int dataSize2 = (int) dataSize;
@@ -192,7 +192,7 @@ public class HemfPlusObject {
objectData = objectType.constructor.get();
size += objectData.init(leis, dataSize2, objectType, flags);
- return size;
+ return Math.toIntExact(size);
}
@Override
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
index cd00d453cc..42dd6e44e6 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emfplus/HemfPlusPen.java
@@ -533,7 +533,7 @@ public class HemfPlusPen {
@SuppressWarnings("unused")
private long initCustomCap(Consumer<EmfPlusCustomLineCap> setter, LittleEndianInputStream leis) throws IOException {
int CustomStartCapSize = leis.readInt();
- int size = LittleEndianConsts.INT_SIZE;
+ long size = LittleEndianConsts.INT_SIZE;
EmfPlusGraphicsVersion version = new EmfPlusGraphicsVersion();
size += version.init(leis);
@@ -547,13 +547,13 @@ public class HemfPlusPen {
setter.accept(cap);
- return size;
+ return Math.toIntExact(size);
}
@Override
public void applyObject(HemfGraphics ctx, List<? extends EmfPlusObjectData> continuedObjectData) {
final HemfDrawProperties prop = ctx.getProperties();
- // TOOD:
+ // TODO:
// - set width according unit type
// - provide logic for different start and end cap
// - provide standard caps like diamond
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java
index 084b15b9c1..d4d6094743 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/dev/SlideShowDumper.java
@@ -281,19 +281,10 @@ public final class SlideShowDumper {
if (recordLen == 8 && atomLen > 8) {
// Assume it has children, rather than being corrupted
walkEscherDDF((indent + 3), pos + 8, (int) atomLen);
-
- // Wind on our length + our header
- pos += atomLen;
- pos += 8;
- len -= atomLen;
- len -= 8;
- } else {
- // No children, wind on our real length
- pos += atomLen;
- pos += 8;
- len -= atomLen;
- len -= 8;
}
+ // Wind on our length + our header
+ pos = Math.toIntExact(pos + atomLen) + 8;
+ len = Math.toIntExact(len - atomLen) - 8;
// Move on to the next one, if we're not at the end yet
if (len >= 8) {
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java b/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java
index 328efb1b29..14751254d6 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hslf/record/HSLFEscherClientDataRecord.java
@@ -113,7 +113,7 @@ public class HSLFEscherClientDataRecord extends EscherClientDataRecord {
_childRecords.add(r);
}
long rlen = LittleEndian.getUInt(remainingData,offset+4);
- offset += 8 + rlen;
+ offset = Math.toIntExact(offset + 8 + rlen);
}
}