From: Marius Volkhart Date: Sat, 27 Feb 2021 19:08:49 +0000 (+0000) Subject: Revert "Replace magic constant with reference" changes X-Git-Tag: REL_5_1_0~350 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cfee75c9b6e0d56216e1131139d229e45d64824b;p=poi.git Revert "Replace magic constant with reference" changes Reverts r1886986, r1886987 and r1886988. Incorrect conversion between int and shorts led to incorrect logic. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886989 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java index ba1aaf4995..42682f550d 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java @@ -28,7 +28,6 @@ import java.util.NavigableMap; import java.util.TreeMap; import org.apache.poi.EncryptedDocumentException; -import org.apache.poi.ddf.EscherRecordTypes; import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException; import org.apache.poi.hslf.exceptions.EncryptedPowerPointFileException; import org.apache.poi.hslf.record.DocumentEncryptionAtom; @@ -221,7 +220,7 @@ public class HSLFSlideShowEncrypted implements Closeable { offset += 8; int endOffset = offset + rlen; - if (recType == EscherRecordTypes.BSE.typeID) { + if (recType == 0xF007) { // TOOD: get a real example file ... to actual test the FBSE entry // not sure where the foDelay block is @@ -299,7 +298,7 @@ public class HSLFSlideShowEncrypted implements Closeable { offset += 8; int endOffset = offset + rlen; - if (recType == EscherRecordTypes.BSE.typeID) { + if (recType == 0xF007) { // TOOD: get a real example file ... to actual test the FBSE entry // not sure where the foDelay block is diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java index 4ebe43518f..9c663e385f 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java @@ -40,7 +40,6 @@ import java.util.TreeMap; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.POIDocument; -import org.apache.poi.ddf.EscherRecordTypes; import org.apache.poi.hpsf.PropertySet; import org.apache.poi.hslf.exceptions.CorruptPowerPointFileException; import org.apache.poi.hslf.exceptions.HSLFException; @@ -381,8 +380,7 @@ public final class HSLFSlideShowImpl extends POIDocument implements Closeable { // When parsing the BStoreDelay stream, [MS-ODRAW] says that we // should terminate if the type isn't 0xf007 or 0xf018->0xf117 - if (!((type == EscherRecordTypes.BSE.typeID) || - (type >= EscherRecordTypes.BLIP_START.typeID && type <= EscherRecordTypes.BLIP_END.typeID))) { + if (!((type == 0xf007) || (type >= 0xf018 && type <= 0xf117))) { break; } @@ -394,7 +392,7 @@ public final class HSLFSlideShowImpl extends POIDocument implements Closeable { } // If the type (including the bonus 0xF018) is 0, skip it - PictureType pt = PictureType.forNativeID(type - EscherRecordTypes.BLIP_START.typeID); + PictureType pt = PictureType.forNativeID(type - 0xF018); if (pt == null) { LOG.atError().log("Problem reading picture: Invalid image type 0, on picture with length {}.\nYour document will probably become corrupted if you save it! Position: {}", box(imgsize),box(pos)); } else { diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/PICFAndOfficeArtData.java b/src/scratchpad/src/org/apache/poi/hwpf/model/PICFAndOfficeArtData.java index b778fea19f..85205b7bb1 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/PICFAndOfficeArtData.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/PICFAndOfficeArtData.java @@ -22,7 +22,6 @@ import java.util.List; import org.apache.poi.ddf.DefaultEscherRecordFactory; import org.apache.poi.ddf.EscherContainerRecord; import org.apache.poi.ddf.EscherRecord; -import org.apache.poi.ddf.EscherRecordTypes; import org.apache.poi.hwpf.model.types.PICFAbstractType; import org.apache.poi.util.IOUtils; import org.apache.poi.util.Internal; @@ -72,9 +71,9 @@ public class PICFAndOfficeArtData { EscherRecord nextRecord = escherRecordFactory.createRecord( dataStream, offset ); - if ( nextRecord.getRecordId() != EscherRecordTypes.BSE.typeID - && ( nextRecord.getRecordId() < EscherRecordTypes.BLIP_START.typeID || nextRecord - .getRecordId() > EscherRecordTypes.BLIP_END.typeID ) ) + if ( nextRecord.getRecordId() != (short) 0xF007 + && ( nextRecord.getRecordId() < (short) 0xF018 || nextRecord + .getRecordId() > (short) 0xF117 ) ) break; int blipRecordSize = nextRecord.fillFields( dataStream, offset, diff --git a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java index 528df95f18..315e0be475 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java @@ -34,7 +34,6 @@ import org.apache.poi.ddf.EscherOptRecord; import org.apache.poi.ddf.EscherProperty; import org.apache.poi.ddf.EscherPropertyTypes; import org.apache.poi.ddf.EscherRecord; -import org.apache.poi.ddf.EscherRecordTypes; import org.apache.poi.hwpf.model.PICF; import org.apache.poi.hwpf.model.PICFAndOfficeArtData; import org.apache.poi.sl.image.ImageHeaderPNG; @@ -513,51 +512,56 @@ public final class Picture { } EscherRecord escherRecord = _blipRecords.get( 0 ); - short recordId = escherRecord.getRecordId(); - if (recordId == EscherRecordTypes.BSE.typeID) { + switch ( escherRecord.getRecordId() ) + { + case (short) 0xF007: + { EscherBSERecord bseRecord = (EscherBSERecord) escherRecord; - switch (bseRecord.getBlipTypeWin32()) { - case 0x00: - return PictureType.UNKNOWN; - case 0x01: - return PictureType.UNKNOWN; - case 0x02: - return PictureType.EMF; - case 0x03: - return PictureType.WMF; - case 0x04: - return PictureType.PICT; - case 0x05: - return PictureType.JPEG; - case 0x06: - return PictureType.PNG; - case 0x07: - return PictureType.BMP; - case 0x11: - return PictureType.TIFF; - case 0x12: - return PictureType.JPEG; - default: - return PictureType.UNKNOWN; + switch ( bseRecord.getBlipTypeWin32() ) + { + case 0x00: + return PictureType.UNKNOWN; + case 0x01: + return PictureType.UNKNOWN; + case 0x02: + return PictureType.EMF; + case 0x03: + return PictureType.WMF; + case 0x04: + return PictureType.PICT; + case 0x05: + return PictureType.JPEG; + case 0x06: + return PictureType.PNG; + case 0x07: + return PictureType.BMP; + case 0x11: + return PictureType.TIFF; + case 0x12: + return PictureType.JPEG; + default: + return PictureType.UNKNOWN; } - } else if (recordId == (short) 0xF01A) { + } + case (short) 0xF01A: return PictureType.EMF; - } else if (recordId == (short) 0xF01B) { + case (short) 0xF01B: return PictureType.WMF; - } else if (recordId == (short) 0xF01C) { + case (short) 0xF01C: return PictureType.PICT; - } else if (recordId == (short) 0xF01D) { + case (short) 0xF01D: return PictureType.JPEG; - } else if (recordId == (short) 0xF01E) { + case (short) 0xF01E: return PictureType.PNG; - } else if (recordId == (short) 0xF01F) { + case (short) 0xF01F: return PictureType.BMP; - } else if (recordId == (short) 0xF029) { + case (short) 0xF029: return PictureType.TIFF; - } else if (recordId == (short) 0xF02A) { + case (short) 0xF02A: return PictureType.JPEG; + default: + return PictureType.UNKNOWN; } - return PictureType.UNKNOWN; } /**