Make picture loading in HWPF PicturesTable easier to understand

The recursion is no longer necessary due to the more defined structure of OfficeArtContent.

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1887016 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Marius Volkhart 2021-02-28 21:06:05 +00:00
parent c08763fad0
commit 77ec895ee0
2 changed files with 7 additions and 10 deletions

View File

@ -117,10 +117,6 @@ public final class OfficeArtContent {
assert pos == offset + size; assert pos == offset + size;
} }
public List<EscherRecord> getEscherRecords() {
return drawingGroupData.getChildRecords();
}
private List<? extends EscherContainerRecord> getDgContainers() { private List<? extends EscherContainerRecord> getDgContainers() {
List<EscherContainerRecord> dgContainers = new ArrayList<>(2); List<EscherContainerRecord> dgContainers = new ArrayList<>(2);
if (mainDocumentDgContainer != null) { if (mainDocumentDgContainer != null) {

View File

@ -26,6 +26,7 @@ import org.apache.logging.log4j.Logger;
import org.apache.poi.ddf.DefaultEscherRecordFactory; import org.apache.poi.ddf.DefaultEscherRecordFactory;
import org.apache.poi.ddf.EscherBSERecord; import org.apache.poi.ddf.EscherBSERecord;
import org.apache.poi.ddf.EscherBlipRecord; import org.apache.poi.ddf.EscherBlipRecord;
import org.apache.poi.ddf.EscherContainerRecord;
import org.apache.poi.ddf.EscherRecord; import org.apache.poi.ddf.EscherRecord;
import org.apache.poi.ddf.EscherRecordFactory; import org.apache.poi.ddf.EscherRecordFactory;
import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.HWPFDocument;
@ -166,7 +167,7 @@ public final class PicturesTable {
} }
/** /**
* Performs a recursive search for pictures in the given list of escher records. * Performs a search for pictures in the given list of escher records.
* *
* @param escherRecords the escher records. * @param escherRecords the escher records.
* @param pictures the list to populate with the pictures. * @param pictures the list to populate with the pictures.
@ -205,9 +206,6 @@ public final class PicturesTable {
} }
} }
} }
// Recursive call.
searchForPictures(escherRecord.getChildRecords(), pictures);
} }
} }
@ -234,9 +232,12 @@ public final class PicturesTable {
} }
} }
searchForPictures(_dgg.getEscherRecords(), pictures); EscherContainerRecord bStore = _dgg.getBStoreContainer();
if (bStore != null) {
searchForPictures(bStore.getChildRecords(), pictures);
}
return pictures; return pictures;
} }
private boolean isBlockContainsImage(int i) private boolean isBlockContainsImage(int i)