]> source.dussan.org Git - poi.git/commitdiff
some int narrowing
authorPJ Fanning <fanningpj@apache.org>
Fri, 19 Aug 2022 02:21:15 +0000 (02:21 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 19 Aug 2022 02:21:15 +0000 (02:21 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1903551 13f79535-47bb-0310-9956-ffa450edef68

poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java
poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerV6.java
poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfMisc.java
poi-scratchpad/src/main/java/org/apache/poi/hemf/record/emf/HemfText.java
poi-scratchpad/src/main/java/org/apache/poi/hslf/usermodel/HSLFShape.java
poi-scratchpad/src/main/java/org/apache/poi/hwpf/dev/RecordUtil.java
poi-scratchpad/src/main/java/org/apache/poi/hwpf/sprm/TableSprmUncompressor.java
poi/src/main/java/org/apache/poi/poifs/property/Property.java
poi/src/main/java/org/apache/poi/sl/draw/DrawTextParagraph.java
poi/src/main/java/org/apache/poi/ss/format/CellNumberFormatter.java

index 068bc0172f4bb9203edfc4c654c33c95dce4725d..8020d31654bd3c6c3c61c134bc73ae2231a47c45 100644 (file)
@@ -47,10 +47,10 @@ public abstract class ChunkHeader {
             } else {
                 ch = new ChunkHeaderV6();
             }
-            ch.setType((int)LittleEndian.getUInt(data, offset));
-            ch.setId((int)LittleEndian.getUInt(data, offset + 4));
-            ch.setUnknown1((int)LittleEndian.getUInt(data, offset + 8));
-            ch.setLength((int)LittleEndian.getUInt(data, offset + 12));
+            ch.setType(Math.toIntExact(LittleEndian.getUInt(data, offset)));
+            ch.setId(Math.toIntExact(LittleEndian.getUInt(data, offset + 4)));
+            ch.setUnknown1(Math.toIntExact(LittleEndian.getUInt(data, offset + 8)));
+            ch.setLength(Math.toIntExact(LittleEndian.getUInt(data, offset + 12)));
             ch.setUnknown2(LittleEndian.getShort(data, offset + 16));
             ch.setUnknown3(LittleEndian.getUByte(data, offset + 18));
 
index 9983c4ccd4c06e1479a4ef9c1f95af44c3631518..210e07e3f084d561185b691236aae998cda42232 100644 (file)
@@ -52,7 +52,7 @@ public final class PointerV6 extends Pointer {
     }
     public static int getNumPointersOffsetV6(byte[] data) {    
         // V6 stores it as the first value in the stream
-        return (int)LittleEndian.getUInt(data, 0);
+        return Math.toIntExact(LittleEndian.getUInt(data, 0));
     }
     /**
      * 32 bit int at the given offset
@@ -62,7 +62,7 @@ public final class PointerV6 extends Pointer {
     }
     public static int getNumPointersV6(int offset, byte[] data) {
         // V6 stores it a 32 bit number at the offset
-        return (int)LittleEndian.getUInt(data, offset);
+        return Math.toIntExact(LittleEndian.getUInt(data, offset));
     }
     /**
      * 4 bytes of the number, and 4 more unknown bytes
index 996a44f08ee0d425923834d188adf2c424726a0c..fb72174e61fb8c994d49283da655c5cbd8a57b53 100644 (file)
@@ -433,7 +433,7 @@ public class HemfMisc {
             int size = 6*LittleEndianConsts.INT_SIZE;
 
             patternDib = new HwmfBitmapDib();
-            size += readBitmap(leis, patternDib, startIdx, offBmi, cbBmi, offBits, cbBits);
+            size = Math.toIntExact(size + readBitmap(leis, patternDib, startIdx, offBmi, cbBmi, offBits, cbBits));
             return size;
         }
 
@@ -634,9 +634,9 @@ public class HemfMisc {
                 emfPS.setLineDashes(dashPattern);
             }
 
-            size += numStyleEntries * LittleEndianConsts.INT_SIZE;
+            size = Math.addExact(size, numStyleEntries * LittleEndianConsts.INT_SIZE);
 
-            size += readBitmap(leis, bitmap, startIdx, offBmi, cbBmi, offBits, cbBits);
+            size = Math.toIntExact(size + readBitmap(leis, bitmap, startIdx, offBmi, cbBmi, offBits, cbBits));
 
             return size;
         }
@@ -896,11 +896,11 @@ public class HemfMisc {
 
             // A 32-bit unsigned integer that specifies the size of the DIB bits, if the record
             // contains a DIB.
-            int cbBits = (int) leis.readUInt();
+            int cbBits = Math.toIntExact(leis.readUInt());
 
             int size = 6 * LittleEndianConsts.INT_SIZE;
 
-            size += readBitmap(leis, bitmap, startIdx, offBmi, cbBmi, offBits, cbBits);
+            size = Math.toIntExact(size + readBitmap(leis, bitmap, startIdx, offBmi, cbBmi, offBits, cbBits));
 
             return size;
         }
index b7b7ef698ca06c05f20273fbfdfd616ad5f1a307..3b6aaddd753d8b51616705148c7e4937315d0564 100644 (file)
@@ -166,19 +166,19 @@ public class HemfText {
                             // invalid dx array
                             dx.clear();
                         }
-                        strEnd = (int)recordSize;
+                        strEnd = Math.toIntExact(recordSize);
                         break;
                     }
                     default:
                     case 's': {
-                        int undefinedSpace1 = (int)(offString - (size + HEADER_SIZE));
+                        int undefinedSpace1 = Math.toIntExact(offString - (size + HEADER_SIZE));
                         if (offString > 0 && undefinedSpace1 >= 0 && offString-HEADER_SIZE < recordSize) {
                             leis.skipFully(undefinedSpace1);
                             size += undefinedSpace1;
 
                             // read all available bytes and not just "stringLength * 1(ansi)/2(unicode)"
                             // in case we need to deal with surrogate pairs
-                            final int maxSize = (int)(Math.min(recordSize, strEnd)-size);
+                            final int maxSize = Math.toIntExact(Math.min(recordSize, strEnd)-size);
                             rawTextBytes = IOUtils.safelyAllocate(maxSize, MAX_RECORD_LENGTH);
                             leis.readFully(rawTextBytes);
                             size += maxSize;
index 3b69f66a0fee4964d1e8c441410f63b2fd8fb789..8dd66e94fee1cd24574739037de2accd4c91d2be 100644 (file)
@@ -569,9 +569,9 @@ public abstract class HSLFShape implements Shape<HSLFShape,HSLFTextParagraph> {
             case DARKEN_COLOR: {
                 // see java.awt.Color#darken()
                 double FACTOR = (ecr.getRGB()[2])/255.;
-                int r = (int)Math.rint(col.getRed()*FACTOR);
-                int g = (int)Math.rint(col.getGreen()*FACTOR);
-                int b = (int)Math.rint(col.getBlue()*FACTOR);
+                int r = Math.toIntExact(Math.round(col.getRed()*FACTOR));
+                int g = Math.toIntExact(Math.round(col.getGreen()*FACTOR));
+                int b = Math.toIntExact(Math.round(col.getBlue()*FACTOR));
                 return new Color(r,g,b);
             }
             case LIGHTEN_COLOR: {
@@ -581,9 +581,9 @@ public abstract class HSLFShape implements Shape<HSLFShape,HSLFTextParagraph> {
                 int g = col.getGreen();
                 int b = col.getBlue();
 
-                r += Math.rint((0xFF-r)*FACTOR);
-                g += Math.rint((0xFF-g)*FACTOR);
-                b += Math.rint((0xFF-b)*FACTOR);
+                r = Math.toIntExact(Math.round(r + (0xFF-r)*FACTOR));
+                g = Math.toIntExact(Math.round(g + (0xFF-g)*FACTOR));
+                b = Math.toIntExact(Math.round(b + (0xFF-b)*FACTOR));
 
                 return new Color(r,g,b);
             }
index 6c401cc512bd2c2d63cc6efbd19d7919dd1ef259..6e750da446218c8abdd9341983de3cfafa86966b 100644 (file)
@@ -121,7 +121,7 @@ public class RecordUtil
 
         for ( int x = 0; x < parentSize; x++ )
         {
-            numBits += ( mask >> x ) & 0x1;
+            numBits += (byte) (( mask >> x ) & 0x1);
         }
 
         if ( numBits == 1 )
index 2577bb05151268fecdaf886e514bdc057b3b5b9c..54cab168903604cb1c6b4b7f8c79ca0398bd04ef 100644 (file)
@@ -96,7 +96,7 @@ public final class TableSprmUncompressor extends SprmUncompressor {
         int adjust = sprm.getOperand() - (rgdxaCenter[0] + newTAP.getDxaGapHalf ());
         for (int x = 0; x < itcMac; x++)
         {
-          rgdxaCenter[x] += adjust;
+          rgdxaCenter[x] += (short) adjust;
         }
         break;
       }
@@ -106,7 +106,7 @@ public final class TableSprmUncompressor extends SprmUncompressor {
         if (rgdxaCenter != null)
         {
           int adjust = newTAP.getDxaGapHalf () - sprm.getOperand();
-          rgdxaCenter[0] += adjust;
+          rgdxaCenter[0] += (short) adjust;
         }
         newTAP.setDxaGapHalf (sprm.getOperand());
         break;
index 92bcb9f603768e3315982d66d53102364e352e44..ca34dbd76f1de376dfe98728f9dfd24dce553acc 100644 (file)
@@ -271,12 +271,12 @@ public abstract class Property implements Child, POIFSViewable {
         for (; j < limit; j++)
         {
             new ShortField(offset, ( short ) char_array[ j ], _raw_data);
-            offset += LittleEndianConsts.SHORT_SIZE;
+            offset += (short) LittleEndianConsts.SHORT_SIZE;
         }
         for (; j < _max_name_length + 1; j++)
         {
             new ShortField(offset, ( short ) 0, _raw_data);
-            offset += LittleEndianConsts.SHORT_SIZE;
+            offset += (short) LittleEndianConsts.SHORT_SIZE;
         }
 
         // double the count, and include the null at the end
index ac29af9e4e5d4f12cb642b8179a9e6308ce14ac1..b0cd9598de86f71abedac17573b044a05ebfc497 100644 (file)
@@ -368,9 +368,9 @@ public class DrawTextParagraph implements Drawable {
             buSz = 100d;
         }
         if (buSz > 0) {
-            fontSize *= buSz* 0.01;
+            fontSize *= (float) (buSz * 0.01);
         } else {
-            fontSize = (float)-buSz;
+            fontSize = (float) -buSz;
         }
 
         String buFontStr = bulletStyle.getBulletFont();
index ee4d787e9e0e78d497a680dff390378e0f0931f9..3a7c0102fd1017982f839c6365ffe22e62255f7d 100644 (file)
@@ -694,7 +694,7 @@ public class CellNumberFormatter extends CellFormatter {
                 d = frac.getDenominator();
             }
             if (improperFraction) {
-                n += Math.round(value * d);
+                n = Math.toIntExact(n + Math.round(value * d));
             }
             writeSingleInteger(numeratorFmt, n, output, numeratorSpecials, mods);
             writeSingleInteger(denominatorFmt, d, output, denominatorSpecials, mods);