From a39ef232c1606edb20be80956f849289f2440574 Mon Sep 17 00:00:00 2001 From: Peter Bernard West Date: Sun, 1 Dec 2002 14:40:52 +0000 Subject: [PATCH] Used pool.surrendeEvent(). git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@195691 13f79535-47bb-0310-9956-ffa450edef68 --- src/org/apache/fop/fo/flow/FoBasicLink.java | 6 +++-- .../apache/fop/fo/flow/FoBidiOverride.java | 6 +++-- src/org/apache/fop/fo/flow/FoBlock.java | 9 ++++--- .../apache/fop/fo/flow/FoBlockContainer.java | 6 +++-- src/org/apache/fop/fo/flow/FoFloat.java | 6 +++-- src/org/apache/fop/fo/flow/FoFlow.java | 12 +++++---- src/org/apache/fop/fo/flow/FoFootnote.java | 6 +++-- .../apache/fop/fo/flow/FoFootnoteBody.java | 6 +++-- src/org/apache/fop/fo/flow/FoInline.java | 9 ++++--- .../apache/fop/fo/flow/FoInlineContainer.java | 6 +++-- src/org/apache/fop/fo/flow/FoLeader.java | 9 ++++--- src/org/apache/fop/fo/flow/FoListBlock.java | 6 +++-- src/org/apache/fop/fo/flow/FoListItem.java | 9 ++++--- .../apache/fop/fo/flow/FoListItemBody.java | 6 +++-- .../apache/fop/fo/flow/FoListItemLabel.java | 6 +++-- src/org/apache/fop/fo/flow/FoMarker.java | 9 ++++--- src/org/apache/fop/fo/flow/FoMultiCase.java | 9 ++++--- .../apache/fop/fo/flow/FoMultiProperties.java | 6 +++-- src/org/apache/fop/fo/flow/FoMultiSwitch.java | 3 ++- src/org/apache/fop/fo/flow/FoMultiToggle.java | 9 ++++--- .../apache/fop/fo/flow/FoPageSequence.java | 12 ++++++--- .../apache/fop/fo/flow/FoStaticContent.java | 27 +++++++++---------- src/org/apache/fop/fo/flow/FoTable.java | 18 ++++++++----- .../apache/fop/fo/flow/FoTableAndCaption.java | 9 ++++--- src/org/apache/fop/fo/flow/FoTableBody.java | 9 ++++--- .../apache/fop/fo/flow/FoTableCaption.java | 6 +++-- src/org/apache/fop/fo/flow/FoTableCell.java | 6 +++-- src/org/apache/fop/fo/flow/FoTableFooter.java | 9 ++++--- src/org/apache/fop/fo/flow/FoTableHeader.java | 9 ++++--- src/org/apache/fop/fo/flow/FoTableRow.java | 3 ++- src/org/apache/fop/fo/flow/FoTitle.java | 6 +++-- src/org/apache/fop/fo/flow/FoWrapper.java | 6 +++-- 32 files changed, 170 insertions(+), 94 deletions(-) diff --git a/src/org/apache/fop/fo/flow/FoBasicLink.java b/src/org/apache/fop/fo/flow/FoBasicLink.java index 446f9a227..7b25ff0ac 100644 --- a/src/org/apache/fop/fo/flow/FoBasicLink.java +++ b/src/org/apache/fop/fo/flow/FoBasicLink.java @@ -126,14 +126,16 @@ public class FoBasicLink extends FONode { FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoBidiOverride.java b/src/org/apache/fop/fo/flow/FoBidiOverride.java index 9c66f03c2..393c396e1 100644 --- a/src/org/apache/fop/fo/flow/FoBidiOverride.java +++ b/src/org/apache/fop/fo/flow/FoBidiOverride.java @@ -112,14 +112,16 @@ public class FoBidiOverride extends FONode { FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoBlock.java b/src/org/apache/fop/fo/flow/FoBlock.java index 23078f026..dac8f2d62 100644 --- a/src/org/apache/fop/fo/flow/FoBlock.java +++ b/src/org/apache/fop/fo/flow/FoBlock.java @@ -137,15 +137,18 @@ public class FoBlock extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoBlockContainer.java b/src/org/apache/fop/fo/flow/FoBlockContainer.java index 757ab4331..70643c7dc 100644 --- a/src/org/apache/fop/fo/flow/FoBlockContainer.java +++ b/src/org/apache/fop/fo/flow/FoBlockContainer.java @@ -129,7 +129,8 @@ public class FoBlockContainer extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -140,7 +141,8 @@ public class FoBlockContainer extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoFloat.java b/src/org/apache/fop/fo/flow/FoFloat.java index ba083eeba..c81afb6b8 100644 --- a/src/org/apache/fop/fo/flow/FoFloat.java +++ b/src/org/apache/fop/fo/flow/FoFloat.java @@ -106,7 +106,8 @@ public class FoFloat extends FONode { FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags | FONode.MC_FLOAT); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -117,7 +118,8 @@ public class FoFloat extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags | FONode.MC_FLOAT); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoFlow.java b/src/org/apache/fop/fo/flow/FoFlow.java index ed8a667a2..9fdaf0a87 100644 --- a/src/org/apache/fop/fo/flow/FoFlow.java +++ b/src/org/apache/fop/fo/flow/FoFlow.java @@ -85,21 +85,23 @@ public class FoFlow extends FONode { if ((ev = xmlevents.expectBlock()) == null) throw new FOPException("%block; not found in fo:flow"); // Generate the flow object - System.out.println("Generating first block for flow."); + //System.out.println("Generating first block for flow."); FObjects.fobjects.makeFlowObject (foTree, this, ev, FONode.FLOW_SET); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { ev = xmlevents.expectBlock(); if (ev != null) { // Generate the flow object - System.out.println - ("Generating subsequent block for flow."); + //System.out.println + //("Generating subsequent block for flow."); FObjects.fobjects.makeFlowObject (foTree, this, ev, FONode.FLOW_SET); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoFootnote.java b/src/org/apache/fop/fo/flow/FoFootnote.java index 31e51b2b5..0cc295c7d 100644 --- a/src/org/apache/fop/fo/flow/FoFootnote.java +++ b/src/org/apache/fop/fo/flow/FoFootnote.java @@ -110,7 +110,8 @@ public class FoFootnote extends FONode { throw new FOPException("No inline in footnote."); new FoInline (getFOTree(), this, ev, stateFlags | FONode.MC_FOOTNOTE); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Look for the footnote-body if ((ev = xmlevents.expectStartElement @@ -119,7 +120,8 @@ public class FoFootnote extends FONode { throw new FOPException("No footnote-body in footnote."); new FoFootnoteBody (getFOTree(), this, ev, stateFlags | FONode.MC_FOOTNOTE); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); /* } catch (NoSuchElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoFootnoteBody.java b/src/org/apache/fop/fo/flow/FoFootnoteBody.java index a462ab8b7..7d8b24cbe 100644 --- a/src/org/apache/fop/fo/flow/FoFootnoteBody.java +++ b/src/org/apache/fop/fo/flow/FoFootnoteBody.java @@ -102,7 +102,8 @@ public class FoFootnoteBody extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -113,7 +114,8 @@ public class FoFootnoteBody extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoInline.java b/src/org/apache/fop/fo/flow/FoInline.java index 94d8e1905..ad5308eaf 100644 --- a/src/org/apache/fop/fo/flow/FoInline.java +++ b/src/org/apache/fop/fo/flow/FoInline.java @@ -126,15 +126,18 @@ public class FoInline extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoInlineContainer.java b/src/org/apache/fop/fo/flow/FoInlineContainer.java index f9a26cc32..ba4609c1f 100644 --- a/src/org/apache/fop/fo/flow/FoInlineContainer.java +++ b/src/org/apache/fop/fo/flow/FoInlineContainer.java @@ -124,7 +124,8 @@ public class FoInlineContainer extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -135,7 +136,8 @@ public class FoInlineContainer extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoLeader.java b/src/org/apache/fop/fo/flow/FoLeader.java index 1d85a0a70..988bdb99c 100644 --- a/src/org/apache/fop/fo/flow/FoLeader.java +++ b/src/org/apache/fop/fo/flow/FoLeader.java @@ -129,15 +129,18 @@ public class FoLeader extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoListBlock.java b/src/org/apache/fop/fo/flow/FoListBlock.java index 783740f32..e346ea5e0 100644 --- a/src/org/apache/fop/fo/flow/FoListBlock.java +++ b/src/org/apache/fop/fo/flow/FoListBlock.java @@ -120,7 +120,8 @@ public class FoListBlock extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more table-rows @@ -130,7 +131,8 @@ public class FoListBlock extends FONode { != null) { new FoListItem(getFOTree(), this, ev, stateFlags); numItems++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numItems > 0) { diff --git a/src/org/apache/fop/fo/flow/FoListItem.java b/src/org/apache/fop/fo/flow/FoListItem.java index b9b2a38e1..a7c178e3d 100644 --- a/src/org/apache/fop/fo/flow/FoListItem.java +++ b/src/org/apache/fop/fo/flow/FoListItem.java @@ -114,7 +114,8 @@ public class FoListItem extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one list-item-label @@ -125,7 +126,8 @@ public class FoListItem extends FONode { throw new FOPException ("No list-item-label in list-item."); new FoListItemLabel(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Look for one list-item-body nowProcessing = "list-item-body"; @@ -135,7 +137,8 @@ public class FoListItem extends FONode { throw new FOPException ("No list-item-body in list-item."); new FoListItemBody(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); /* } catch (NoSuchElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoListItemBody.java b/src/org/apache/fop/fo/flow/FoListItemBody.java index c1850e6c6..5fb1e1130 100644 --- a/src/org/apache/fop/fo/flow/FoListItemBody.java +++ b/src/org/apache/fop/fo/flow/FoListItemBody.java @@ -105,7 +105,8 @@ public class FoListItemBody extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -116,7 +117,8 @@ public class FoListItemBody extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoListItemLabel.java b/src/org/apache/fop/fo/flow/FoListItemLabel.java index 8923f2619..92c179cc2 100644 --- a/src/org/apache/fop/fo/flow/FoListItemLabel.java +++ b/src/org/apache/fop/fo/flow/FoListItemLabel.java @@ -105,7 +105,8 @@ public class FoListItemLabel extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -116,7 +117,8 @@ public class FoListItemLabel extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoMarker.java b/src/org/apache/fop/fo/flow/FoMarker.java index a48bd35e5..964613110 100644 --- a/src/org/apache/fop/fo/flow/FoMarker.java +++ b/src/org/apache/fop/fo/flow/FoMarker.java @@ -97,15 +97,18 @@ public class FoMarker extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoMultiCase.java b/src/org/apache/fop/fo/flow/FoMultiCase.java index 3ed445131..e204deefe 100644 --- a/src/org/apache/fop/fo/flow/FoMultiCase.java +++ b/src/org/apache/fop/fo/flow/FoMultiCase.java @@ -109,15 +109,18 @@ public class FoMultiCase extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoMultiProperties.java b/src/org/apache/fop/fo/flow/FoMultiProperties.java index 58394be65..3a98de9eb 100644 --- a/src/org/apache/fop/fo/flow/FoMultiProperties.java +++ b/src/org/apache/fop/fo/flow/FoMultiProperties.java @@ -101,7 +101,8 @@ public class FoMultiProperties extends FONode { != null) { new FoMultiPropertySet(getFOTree(), this, ev, stateFlags); numSets++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numSets == 0) @@ -115,7 +116,8 @@ public class FoMultiProperties extends FONode { throw new FOPException ("No wrapper in multi-properties."); new FoWrapper(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); /* } catch (NoSuchElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoMultiSwitch.java b/src/org/apache/fop/fo/flow/FoMultiSwitch.java index 7d85887a3..dadc06c8a 100644 --- a/src/org/apache/fop/fo/flow/FoMultiSwitch.java +++ b/src/org/apache/fop/fo/flow/FoMultiSwitch.java @@ -101,7 +101,8 @@ public class FoMultiSwitch extends FONode { != null) { new FoMultiCase(getFOTree(), this, ev, stateFlags); numCases++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numCases == 0) diff --git a/src/org/apache/fop/fo/flow/FoMultiToggle.java b/src/org/apache/fop/fo/flow/FoMultiToggle.java index 3b8e60490..cbc50de89 100644 --- a/src/org/apache/fop/fo/flow/FoMultiToggle.java +++ b/src/org/apache/fop/fo/flow/FoMultiToggle.java @@ -106,15 +106,18 @@ public class FoMultiToggle extends FONode { //System.out.println("Generating flow object for " + ev); FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + if (ev.getFoType() != FObjectNames.PCDATA) { + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + } + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoPageSequence.java b/src/org/apache/fop/fo/flow/FoPageSequence.java index 3a2727b64..15cd2d83c 100644 --- a/src/org/apache/fop/fo/flow/FoPageSequence.java +++ b/src/org/apache/fop/fo/flow/FoPageSequence.java @@ -109,7 +109,8 @@ public class FoPageSequence extends FONode { // process the title title = numChildren(); new FoTitle(getFOTree(), this, ev); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // else ignore // Look for zero or more static-content @@ -121,7 +122,8 @@ public class FoPageSequence extends FONode { if (firstStaticContent != -1) firstStaticContent = numChildren(); new FoStaticContent(getFOTree(), this, ev); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more page-sequence @@ -133,13 +135,15 @@ public class FoPageSequence extends FONode { throw new FOPException("No flow found."); firstFlow = numChildren(); new FoFlow(getFOTree(), this, ev); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); while ((ev = xmlevents.expectStartElement (FObjectNames.FLOW, XMLEvent.DISCARD_W_SPACE)) != null) { // Loop over remaining fo:page-sequences new FoFlow(getFOTree(), this, ev); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } catch (NoSuchElementException e) { throw new FOPException diff --git a/src/org/apache/fop/fo/flow/FoStaticContent.java b/src/org/apache/fop/fo/flow/FoStaticContent.java index 0cee9188b..2496662f3 100644 --- a/src/org/apache/fop/fo/flow/FoStaticContent.java +++ b/src/org/apache/fop/fo/flow/FoStaticContent.java @@ -87,23 +87,22 @@ public class FoStaticContent extends FONode { throw new FOPException ("%block; not found in fo:static-content"); // Generate the flow object - System.out.println("Generating first block for static-content."); + //System.out.println("Generating first block for static-content."); FObjects.fobjects.makeFlowObject - (foTree, this, ev, FONode.STATIC_SET); + (foTree, this, ev, FONode.STATIC_SET); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s - do { - ev = xmlevents.expectBlock(); - if (ev != null) { - // Generate the flow object - System.out.println - ("Generating subsequent block for static-content."); - FObjects.fobjects.makeFlowObject - (foTree, this, ev, FONode.STATIC_SET); - ev = xmlevents.getEndElement(ev); - } - } while (ev != null); + while ((ev = xmlevents.expectBlock()) != null) { + // Generate the flow object + //System.out.println + //("Generating subsequent block for static-content."); + FObjects.fobjects.makeFlowObject + (foTree, this, ev, FONode.STATIC_SET); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); + } } catch(UnexpectedStartElementException e) { throw new FOPException ("Block not found or unexpected non-block in fo:static-content"); diff --git a/src/org/apache/fop/fo/flow/FoTable.java b/src/org/apache/fop/fo/flow/FoTable.java index db12735dd..c8e6f38fc 100644 --- a/src/org/apache/fop/fo/flow/FoTable.java +++ b/src/org/apache/fop/fo/flow/FoTable.java @@ -142,7 +142,8 @@ public class FoTable extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for zero or more table-columns @@ -152,7 +153,8 @@ public class FoTable extends FONode { != null) { new FoTableColumn(getFOTree(), this, ev, stateFlags); numColumns++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for optional table-header @@ -162,7 +164,8 @@ public class FoTable extends FONode { != null) { headerOffset = numChildren(); new FoTableHeader(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for optional table-footer @@ -172,7 +175,8 @@ public class FoTable extends FONode { != null) { footerOffset = numChildren(); new FoTableFooter(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more table-body @@ -185,14 +189,16 @@ public class FoTable extends FONode { firstBodyOffset = numChildren(); new FoTableBody(getFOTree(), this, ev, stateFlags); numBodies++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); while ((ev = xmlevents.expectStartElement (FObjectNames.TABLE_BODY, XMLEvent.DISCARD_W_SPACE)) != null) { // Loop over remaining fo:table-body's new FoTableBody(getFOTree(), this, ev, stateFlags); numBodies++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } /* diff --git a/src/org/apache/fop/fo/flow/FoTableAndCaption.java b/src/org/apache/fop/fo/flow/FoTableAndCaption.java index 81245bcff..b057141a1 100644 --- a/src/org/apache/fop/fo/flow/FoTableAndCaption.java +++ b/src/org/apache/fop/fo/flow/FoTableAndCaption.java @@ -122,7 +122,8 @@ public class FoTableAndCaption extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for optional table-caption @@ -132,7 +133,8 @@ public class FoTableAndCaption extends FONode { != null) { new FoTableCaption(getFOTree(), this, ev, stateFlags); captionOffset = numMarkers; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one table @@ -143,7 +145,8 @@ public class FoTableAndCaption extends FONode { throw new FOPException("No table found."); tableOffset = numChildren(); new FoTable(getFOTree(), this, ev, stateFlags); - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); /* } catch (NoSuchElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoTableBody.java b/src/org/apache/fop/fo/flow/FoTableBody.java index 6e42f4e9b..fcc2764fc 100644 --- a/src/org/apache/fop/fo/flow/FoTableBody.java +++ b/src/org/apache/fop/fo/flow/FoTableBody.java @@ -123,7 +123,8 @@ public class FoTableBody extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more table-rows @@ -133,7 +134,8 @@ public class FoTableBody extends FONode { != null) { new FoTableRow(getFOTree(), this, ev, stateFlags); numRows++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numRows > 0) { @@ -146,7 +148,8 @@ public class FoTableBody extends FONode { != null) { new FoTableCell(getFOTree(), this, ev, stateFlags); numCells++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numCells == 0) throw new FOPException diff --git a/src/org/apache/fop/fo/flow/FoTableCaption.java b/src/org/apache/fop/fo/flow/FoTableCaption.java index 325e6c124..34f84db77 100644 --- a/src/org/apache/fop/fo/flow/FoTableCaption.java +++ b/src/org/apache/fop/fo/flow/FoTableCaption.java @@ -114,7 +114,8 @@ public class FoTableCaption extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -125,7 +126,8 @@ public class FoTableCaption extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoTableCell.java b/src/org/apache/fop/fo/flow/FoTableCell.java index efb0b2fd5..8f9dfa841 100644 --- a/src/org/apache/fop/fo/flow/FoTableCell.java +++ b/src/org/apache/fop/fo/flow/FoTableCell.java @@ -123,7 +123,8 @@ public class FoTableCell extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject(foTree, this, ev, stateFlags); // Clear the blockage - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); // Get the rest of the %block;s do { if ((stateFlags & FONode.MC_OUT_OF_LINE) == 0) @@ -134,7 +135,8 @@ public class FoTableCell extends FONode { // Generate the flow object FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); } catch(UnexpectedStartElementException e) { diff --git a/src/org/apache/fop/fo/flow/FoTableFooter.java b/src/org/apache/fop/fo/flow/FoTableFooter.java index 52a77d34f..a372baf1a 100644 --- a/src/org/apache/fop/fo/flow/FoTableFooter.java +++ b/src/org/apache/fop/fo/flow/FoTableFooter.java @@ -123,7 +123,8 @@ public class FoTableFooter extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more table-rows @@ -133,7 +134,8 @@ public class FoTableFooter extends FONode { != null) { new FoTableRow(getFOTree(), this, ev, stateFlags); numRows++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numRows > 0) { @@ -146,7 +148,8 @@ public class FoTableFooter extends FONode { != null) { new FoTableCell(getFOTree(), this, ev, stateFlags); numCells++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numCells == 0) throw new FOPException diff --git a/src/org/apache/fop/fo/flow/FoTableHeader.java b/src/org/apache/fop/fo/flow/FoTableHeader.java index 5b9c5a5e6..840e95ab1 100644 --- a/src/org/apache/fop/fo/flow/FoTableHeader.java +++ b/src/org/apache/fop/fo/flow/FoTableHeader.java @@ -123,7 +123,8 @@ public class FoTableHeader extends FONode { != null) { new FoMarker(getFOTree(), this, ev, stateFlags); numMarkers++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } // Look for one or more table-rows @@ -133,7 +134,8 @@ public class FoTableHeader extends FONode { != null) { new FoTableRow(getFOTree(), this, ev, stateFlags); numRows++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numRows > 0) { @@ -146,7 +148,8 @@ public class FoTableHeader extends FONode { != null) { new FoTableCell(getFOTree(), this, ev, stateFlags); numCells++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numCells == 0) throw new FOPException diff --git a/src/org/apache/fop/fo/flow/FoTableRow.java b/src/org/apache/fop/fo/flow/FoTableRow.java index 5df3af6da..4c3b485dc 100644 --- a/src/org/apache/fop/fo/flow/FoTableRow.java +++ b/src/org/apache/fop/fo/flow/FoTableRow.java @@ -120,7 +120,8 @@ public class FoTableRow extends FONode { != null) { new FoTableCell(getFOTree(), this, ev, stateFlags); numCells++; - xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } if (numCells == 0) throw new FOPException diff --git a/src/org/apache/fop/fo/flow/FoTitle.java b/src/org/apache/fop/fo/flow/FoTitle.java index 213ef9f3c..d6bd2fa1a 100644 --- a/src/org/apache/fop/fo/flow/FoTitle.java +++ b/src/org/apache/fop/fo/flow/FoTitle.java @@ -109,14 +109,16 @@ public class FoTitle extends FONode { FObjects.fobjects.makeFlowObject (foTree, this, ev, FONode.TITLE_SET); if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); diff --git a/src/org/apache/fop/fo/flow/FoWrapper.java b/src/org/apache/fop/fo/flow/FoWrapper.java index deda87d4b..0d3635b23 100644 --- a/src/org/apache/fop/fo/flow/FoWrapper.java +++ b/src/org/apache/fop/fo/flow/FoWrapper.java @@ -95,14 +95,16 @@ public class FoWrapper extends FONode { FObjects.fobjects.makeFlowObject (foTree, this, ev, stateFlags); if (ev.getFoType() != FObjectNames.PCDATA) - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } catch(UnexpectedStartElementException e) { ev = xmlevents.getStartElement(); MessageHandler.logln ("Ignoring unexpected Start Element: " + ev.getQName()); - ev = xmlevents.getEndElement(ev); + ev = xmlevents.getEndElement(xmlevents.DISCARD_EV, ev); + pool.surrenderEvent(ev); } } while (ev != null); -- 2.39.5