You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by vh...@apache.org on 2007/07/09 18:59:43 UTC

svn commit: r554709 - /xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java

Author: vhennebert
Date: Mon Jul  9 09:59:42 2007
New Revision: 554709

URL: http://svn.apache.org/viewvc?view=rev&rev=554709
Log:
Use a prevIsBox boolean instead of duplicating the list of Knuth elements for active cells into an ArrayList

Modified:
    xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java

Modified: xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java?view=diff&rev=554709&r1=554708&r2=554709
==============================================================================
--- xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java (original)
+++ xmlgraphics/fop/trunk/src/java/org/apache/fop/layoutmgr/table/TableStepper.java Mon Jul  9 09:59:42 2007
@@ -44,6 +44,7 @@
         private PrimaryGridUnit pgu;
         /** Knuth elements for this active cell. */
         private List elementList;
+        private boolean prevIsBox = false;
         /** Number of the row where the row-span begins, zero-based. */
         private int startRow;
         /** Index, in the list of Knuth elements, of the element starting the current step. */
@@ -89,7 +90,7 @@
             } else {
                 //Copy elements (LinkedList) to array lists to improve 
                 //element access performance
-                elementList = new java.util.ArrayList(pgu.getElements());
+                elementList = pgu.getElements();
 //                if (log.isTraceEnabled()) {
 //                    log.trace("column " + (column+1) + ": recording " + elementLists.size() + " element(s)");
 //                }
@@ -140,25 +141,27 @@
 
         private void goToNextLegalBreak() {
             lastPenaltyLength = 0;
-            while (end + 1 < elementList.size()) {
+            boolean breakFound = false;
+            while (!breakFound && end + 1 < elementList.size()) {
                 end++;
                 KnuthElement el = (KnuthElement)elementList.get(end);
                 if (el.isPenalty()) {
+                    prevIsBox = false;
                     if (el.getP() < KnuthElement.INFINITE) {
                         //First legal break point
                         lastPenaltyLength = el.getW();
-                        break;
+                        breakFound = true;
                     }
                 } else if (el.isGlue()) {
-                    if (end > 0) {
-                        KnuthElement prev = (KnuthElement)elementList.get(end - 1);
-                        if (prev.isBox()) {
-                            //Second legal break point
-                            break;
-                        }
+                    if (prevIsBox) {
+                        //Second legal break point
+                        breakFound = true;
+                    } else {
+                        width += el.getW();
                     }
-                    width += el.getW();
+                    prevIsBox = false;
                 } else {
+                    prevIsBox = true;
                     width += el.getW();
                 }
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org