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