]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Used pool.surrendeEvent().
authorPeter Bernard West <pbwest@apache.org>
Sun, 1 Dec 2002 14:40:52 +0000 (14:40 +0000)
committerPeter Bernard West <pbwest@apache.org>
Sun, 1 Dec 2002 14:40:52 +0000 (14:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/FOP_0-20-0_Alt-Design@195691 13f79535-47bb-0310-9956-ffa450edef68

32 files changed:
src/org/apache/fop/fo/flow/FoBasicLink.java
src/org/apache/fop/fo/flow/FoBidiOverride.java
src/org/apache/fop/fo/flow/FoBlock.java
src/org/apache/fop/fo/flow/FoBlockContainer.java
src/org/apache/fop/fo/flow/FoFloat.java
src/org/apache/fop/fo/flow/FoFlow.java
src/org/apache/fop/fo/flow/FoFootnote.java
src/org/apache/fop/fo/flow/FoFootnoteBody.java
src/org/apache/fop/fo/flow/FoInline.java
src/org/apache/fop/fo/flow/FoInlineContainer.java
src/org/apache/fop/fo/flow/FoLeader.java
src/org/apache/fop/fo/flow/FoListBlock.java
src/org/apache/fop/fo/flow/FoListItem.java
src/org/apache/fop/fo/flow/FoListItemBody.java
src/org/apache/fop/fo/flow/FoListItemLabel.java
src/org/apache/fop/fo/flow/FoMarker.java
src/org/apache/fop/fo/flow/FoMultiCase.java
src/org/apache/fop/fo/flow/FoMultiProperties.java
src/org/apache/fop/fo/flow/FoMultiSwitch.java
src/org/apache/fop/fo/flow/FoMultiToggle.java
src/org/apache/fop/fo/flow/FoPageSequence.java
src/org/apache/fop/fo/flow/FoStaticContent.java
src/org/apache/fop/fo/flow/FoTable.java
src/org/apache/fop/fo/flow/FoTableAndCaption.java
src/org/apache/fop/fo/flow/FoTableBody.java
src/org/apache/fop/fo/flow/FoTableCaption.java
src/org/apache/fop/fo/flow/FoTableCell.java
src/org/apache/fop/fo/flow/FoTableFooter.java
src/org/apache/fop/fo/flow/FoTableHeader.java
src/org/apache/fop/fo/flow/FoTableRow.java
src/org/apache/fop/fo/flow/FoTitle.java
src/org/apache/fop/fo/flow/FoWrapper.java

index 446f9a22720beaa77feedeabc2426fa12746bfa4..7b25ff0acb6043ef39276f77f451cb9cb8a03d4b 100644 (file)
@@ -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);
 
index 9c66f03c224dfb010c98abe32577ad18056aaded..393c396e1c0f33dd14197cfd591cc0fa9843ae60 100644 (file)
@@ -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);
 
index 23078f026f426b44b7c4be4ac0c5a2ec7b801864..dac8f2d62ccc10b1481d4be92bc0dfcd841314ff 100644 (file)
@@ -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);
 
index 757ab433163dc419f3358fc275c5233081fe3228..70643c7dc6f9b5d8bbdd61933bbc3825f074300b 100644 (file)
@@ -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) {
index ba083eebacb26b5f0a573e137ef9d708e940c418..c81afb6b8f71569336d0f6682e072704dc6be2a3 100644 (file)
@@ -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) {
index ed8a667a23ef1d276090837edfd6dd11a97bd1b8..9fdaf0a8794e434201f555566766eaec1fffe672 100644 (file)
@@ -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) {
index 31e51b2b52b747fdc2aa1b12a7ccba65d0a542e7..0cc295c7d02a4598109188fc1a29bd1858868d98 100644 (file)
@@ -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) {
index a462ab8b79d31841aecad4848bc3339c0738c824..7d8b24cbe3b10b9be591974ebc176fbb4f7bc569 100644 (file)
@@ -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) {
index 94d8e19054be76edce0c10d83a88e52931fe40c6..ad5308eaf2fef8153d1fa36e868c34b1c7ade2e3 100644 (file)
@@ -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);
 
index f9a26cc321e643965454afb42d75dd4cbe8051b0..ba4609c1f3f0cd169fa0db44dd2d1a90166dd71c 100644 (file)
@@ -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) {
index 1d85a0a70c07135f221be70aba6ce925cd815fad..988bdb99cfd368bd6c56be863c82b5a54cb0f51f 100644 (file)
@@ -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);
 
index 783740f3209d35bf9c23640d56affb5319261e10..e346ea5e0e4f5799175e9fe031059c4ffa9db056 100644 (file)
@@ -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) {
index b9b2a38e142f2c09f289173af7055b4a474e3540..a7c178e3d0579d4ff27589d5c50d4ac1e9118ebd 100644 (file)
@@ -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) {
index c1850e6c64bfb415dd9e4d38dcb7c91a5f1f19fa..5fb1e11308b298ee7d69dfef5f42f1b66f041a0b 100644 (file)
@@ -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) {
index 8923f26198b1917dd3b86787d73e515d37b581ea..92c179cc2ad4193e8678da9035b0b6bf0cd35a6a 100644 (file)
@@ -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) {
index a48bd35e5a4035c5fc2f5927a284ab1a2f2c4c47..9646131106b50661a2aadddaa5fb09115bb9dbee 100644 (file)
@@ -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);
 
index 3ed445131b3b424b7e3b9b4a24046813c5d89bd4..e204deefed8ba5020f5958ba9410704ad3ac98a6 100644 (file)
@@ -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);
 
index 58394be65056556a15a05e2c707eb410cbf2ec0b..3a98de9eb537c177283e0fd4210c7b3f22162b50 100644 (file)
@@ -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) {
index 7d85887a3cedebbbf434ea688c40c38177a0d06d..dadc06c8aa5bc12ccea1b8b82dcd88276d86096e 100644 (file)
@@ -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)
index 3b8e6049028a79f2a3024f5c3e91e18ae9825762..cbc50de8961a1b674b14dc8b334dcb70d084f348 100644 (file)
@@ -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);
 
index 3a2727b64e1fc7b1cc58dd555f8ef7136e459b3f..15cd2d83cfe764f7786895f794f4c239a1329af1 100644 (file)
@@ -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
index 0cee9188b0a7960a65454b41cfa437a61b8c8f0c..2496662f34e346e080e44633f86d6b8254482618 100644 (file)
@@ -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");
index db12735dddc322ca44bccb1b2cc4d20a9d553729..c8e6f38fc02fac86e4c031a597d827d49e37acd3 100644 (file)
@@ -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);
             }
 
             /*
index 81245bcff02f22066b3ad78dbdbda21596d464c3..b057141a1857e49520f3f7083e39160da8cf3983 100644 (file)
@@ -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) {
index 6e42f4e9b5fafd8ff368f2e950b7208dfcafe163..fcc2764fc8ecd87768c0f039088d2965d65c3ec5 100644 (file)
@@ -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
index 325e6c124583d3cb11d0af592db3eaec88435772..34f84db770b30609abbd82e6c9e144d533f495b1 100644 (file)
@@ -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) {
index efb0b2fd59740bc24522ec31ea339c0ea8e61de5..8f9dfa84122af91edcdb6be9eb5d97069766cd83 100644 (file)
@@ -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) {
index 52a77d34f2d27802856ed382fcf2186950305412..a372baf1ad41e8e33b9af0c812edabb8ac0bc62e 100644 (file)
@@ -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
index 5b9c5a5e6c20978f79659bb8007a61f1eadef9cb..840e95ab14f5d38f1c39a73a3061710de73b2fe4 100644 (file)
@@ -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
index 5df3af6dab02c83eb66291a841b80170ed1f9989..4c3b485dc7ae954bd6c0f4b4468cff6b98c93d80 100644 (file)
@@ -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
index 213ef9f3cbae102b873574f5b832107cac70a7d6..d6bd2fa1a772965cd399910a1a9cdc6024b17c63 100644 (file)
@@ -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);
 
index deda87d4b094f4e5797dbd5dd27ac9aa6826bb8a..0d3635b2361c07db1c9c7ea44c12fd170a16682b 100644 (file)
@@ -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);