You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by il...@apache.org on 2002/10/07 17:29:03 UTC
cvs commit: xml-xalan/java/src/org/apache/xpath/compiler XPathParser.java Lexer.java Compiler.java OpMap.java
ilene 2002/10/07 08:29:03
Modified: java/src/org/apache/xpath/axes WalkerFactory.java
UnionPathIterator.java DescendantIterator.java
java/src/org/apache/xpath/compiler XPathParser.java
Lexer.java Compiler.java OpMap.java
Log:
Patch for bugzilla #5046.
The token queue and operations map can now grow to accomodate really
large XPath expressions. Starting sizes of the data structures remain set
at the size in the current code.
I created new classes org.apache.xml.utils.ObjectVector (based on org.apache.xml.utils.IntVector)
and org.apache.xpath.compiler.OpMapVector to store the token queue
and operations map.
This patch is essentially a stop gap until the new parser (xslt20 branch) is integrated.
Revision Changes Path
1.24 +10 -15 xml-xalan/java/src/org/apache/xpath/axes/WalkerFactory.java
Index: WalkerFactory.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/WalkerFactory.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- WalkerFactory.java 13 May 2002 02:03:58 -0000 1.23
+++ WalkerFactory.java 7 Oct 2002 15:29:02 -0000 1.24
@@ -102,7 +102,7 @@
{
AxesWalker firstWalker = null;
- int stepType = compiler.getOpMap()[stepOpCodePos];
+ int stepType = compiler.getOp(stepOpCodePos);
if (stepType != OpCodes.ENDOP)
{
@@ -142,10 +142,10 @@
int stepType;
AxesWalker firstWalker = null;
AxesWalker walker, prevWalker = null;
- int ops[] = compiler.getOpMap();
+
int analysis = analyze(compiler, stepOpCodePos, stepIndex);
- while (OpCodes.ENDOP != (stepType = ops[stepOpCodePos]))
+ while (OpCodes.ENDOP != (stepType = compiler.getOp(stepOpCodePos)))
{
walker = createDefaultWalker(compiler, stepOpCodePos, lpi, analysis);
@@ -345,8 +345,7 @@
throws javax.xml.transform.TransformerException
{
- int ops[] = compiler.getOpMap();
- int stepType = ops[stepOpCodePos];
+ int stepType = compiler.getOp(stepOpCodePos);
switch (stepType)
{
@@ -603,7 +602,6 @@
{
int stepType;
- int ops[] = compiler.getOpMap();
int stepCount = 0;
boolean foundDorDS = false;
boolean foundSelf = false;
@@ -611,7 +609,7 @@
int nodeTestType = OpCodes.NODETYPE_NODE;
- while (OpCodes.ENDOP != (stepType = ops[stepOpCodePos]))
+ while (OpCodes.ENDOP != (stepType = compiler.getOp(stepOpCodePos)))
{
// The DescendantIterator can only do one node test. If there's more
// than one, use another iterator.
@@ -677,7 +675,7 @@
if (nextStepOpCodePos < 0)
break;
- if(OpCodes.ENDOP != ops[nextStepOpCodePos])
+ if(OpCodes.ENDOP != compiler.getOp(nextStepOpCodePos))
{
if(compiler.countPredicates(stepOpCodePos) > 0)
{
@@ -712,11 +710,10 @@
{
int stepType;
- int ops[] = compiler.getOpMap();
int stepCount = 0;
int analysisResult = 0x00000000; // 32 bits of analysis
- while (OpCodes.ENDOP != (stepType = ops[stepOpCodePos]))
+ while (OpCodes.ENDOP != (stepType = compiler.getOp(stepOpCodePos)))
{
stepCount++;
@@ -802,7 +799,7 @@
//+ stepType);
}
- if (OpCodes.NODETYPE_NODE == ops[stepOpCodePos + 3]) // child::node()
+ if (OpCodes.NODETYPE_NODE == compiler.getOp(stepOpCodePos + 3)) // child::node()
{
analysisResult |= BIT_NODETEST_ANY;
}
@@ -875,10 +872,9 @@
int stepType;
StepPattern step = null;
StepPattern firstStep = null, prevStep = null;
- int ops[] = compiler.getOpMap();
int analysis = analyze(compiler, stepOpCodePos, stepIndex);
- while (OpCodes.ENDOP != (stepType = ops[stepOpCodePos]))
+ while (OpCodes.ENDOP != (stepType = compiler.getOp(stepOpCodePos)))
{
step = createDefaultStepPattern(compiler, stepOpCodePos, mpi, analysis,
firstStep, prevStep);
@@ -1697,7 +1693,6 @@
// Unfortunately, we can't do this just via the analysis bits.
int stepType;
- int ops[] = compiler.getOpMap();
int stepCount = 0;
boolean foundWildAttribute = false;
@@ -1706,7 +1701,7 @@
// combonation are counted with this variable.
int potentialDuplicateMakingStepCount = 0;
- while (OpCodes.ENDOP != (stepType = ops[stepOpCodePos]))
+ while (OpCodes.ENDOP != (stepType = compiler.getOp(stepOpCodePos)))
{
stepCount++;
1.27 +3 -3 xml-xalan/java/src/org/apache/xpath/axes/UnionPathIterator.java
Index: UnionPathIterator.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/UnionPathIterator.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- UnionPathIterator.java 22 Mar 2002 01:04:43 -0000 1.26
+++ UnionPathIterator.java 7 Oct 2002 15:29:02 -0000 1.27
@@ -372,7 +372,7 @@
{
// TODO: Handle unwrapped FilterExpr
- int steptype = compiler.getOpMap()[opPos];
+ int steptype = compiler.getOp(opPos);
if (steptype == OpCodes.OP_LOCATIONPATH)
{
@@ -545,7 +545,7 @@
{
return m_exprs[m_index];
}
-
+
/**
* @see ExpressionOwner#setExpression(Expression)
*/
@@ -569,7 +569,7 @@
exp.exprSetParent(UnionPathIterator.this);
m_exprs[m_index] = (LocPathIterator)exp;
}
-
+
}
/**
1.16 +2 -3 xml-xalan/java/src/org/apache/xpath/axes/DescendantIterator.java
Index: DescendantIterator.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/axes/DescendantIterator.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- DescendantIterator.java 22 Mar 2002 01:04:42 -0000 1.15
+++ DescendantIterator.java 7 Oct 2002 15:29:02 -0000 1.16
@@ -92,9 +92,8 @@
super(compiler, opPos, analysis, false);
- int ops[] = compiler.getOpMap();
int firstStepPos = compiler.getFirstChildPos(opPos);
- int stepType = ops[firstStepPos];
+ int stepType = compiler.getOp(firstStepPos);
boolean orSelf = (OpCodes.FROM_DESCENDANTS_OR_SELF == stepType);
boolean fromRoot = false;
@@ -108,7 +107,7 @@
fromRoot = true;
// Ugly code... will go away when AST work is done.
int nextStepPos = compiler.getNextStepPos(firstStepPos);
- if(ops[nextStepPos] == OpCodes.FROM_DESCENDANTS_OR_SELF)
+ if(compiler.getOp(nextStepPos) == OpCodes.FROM_DESCENDANTS_OR_SELF)
orSelf = true;
// firstStepPos += 8;
}
1.22 +188 -197 xml-xalan/java/src/org/apache/xpath/compiler/XPathParser.java
Index: XPathParser.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/XPathParser.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- XPathParser.java 27 Jun 2002 15:01:19 -0000 1.21
+++ XPathParser.java 7 Oct 2002 15:29:02 -0000 1.22
@@ -154,8 +154,8 @@
lexer.tokenize(expression);
- m_ops.m_opMap[0] = OpCodes.OP_XPATH;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] = 2;
+ m_ops.setOp(0,OpCodes.OP_XPATH);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,2);
// Patch for Christine's gripe. She wants her errorHandler to return from
@@ -229,8 +229,8 @@
lexer.tokenize(expression);
- m_ops.m_opMap[0] = OpCodes.OP_MATCHPATTERN;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] = 2;
+ m_ops.setOp(0, OpCodes.OP_MATCHPATTERN);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, 2);
nextToken();
Pattern();
@@ -254,8 +254,8 @@
}
// Terminate for safety.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH)+1);
m_ops.shrink();
}
@@ -332,10 +332,10 @@
int pos = (m_queueMark + n);
boolean b;
- if ((pos <= m_ops.m_tokenQueueSize) && (pos > 0)
- && (m_ops.m_tokenQueueSize != 0))
+ if ((pos <= m_ops.getTokenQueueSize()) && (pos > 0)
+ && (m_ops.getTokenQueueSize() != 0))
{
- String tok = ((String) m_ops.m_tokenQueue[pos - 1]);
+ String tok = ((String) m_ops.m_tokenQueue.elementAt(pos - 1));
b = (tok.length() == 1) ? (tok.charAt(0) == c) : false;
}
@@ -369,7 +369,7 @@
if (lookBehindPos >= 0)
{
- String lookbehind = (String) m_ops.m_tokenQueue[lookBehindPos];
+ String lookbehind = (String) m_ops.m_tokenQueue.elementAt(lookBehindPos);
if (lookbehind.length() == 1)
{
@@ -409,7 +409,7 @@
if ((m_queueMark - n) > 0)
{
- String lookbehind = (String) m_ops.m_tokenQueue[m_queueMark - (n - 1)];
+ String lookbehind = (String) m_ops.m_tokenQueue.elementAt(m_queueMark - (n - 1));
char c0 = (lookbehind == null) ? '|' : lookbehind.charAt(0);
hasToken = (c0 == '|') ? false : true;
@@ -438,9 +438,9 @@
boolean isToken;
- if ((m_queueMark + n) <= m_ops.m_tokenQueueSize)
+ if ((m_queueMark + n) <= m_ops.getTokenQueueSize())
{
- String lookahead = (String) m_ops.m_tokenQueue[m_queueMark + (n - 1)];
+ String lookahead = (String) m_ops.m_tokenQueue.elementAt(m_queueMark + (n - 1));
isToken = (lookahead != null) ? lookahead.equals(s) : (s == null);
}
@@ -459,9 +459,9 @@
private final void nextToken()
{
- if (m_queueMark < m_ops.m_tokenQueueSize)
+ if (m_queueMark < m_ops.getTokenQueueSize())
{
- m_token = (String) m_ops.m_tokenQueue[m_queueMark++];
+ m_token = (String) m_ops.m_tokenQueue.elementAt(m_queueMark++);
m_tokenChar = m_token.charAt(0);
}
else
@@ -485,9 +485,9 @@
String tok;
int relative = m_queueMark + i;
- if ((relative > 0) && (relative < m_ops.m_tokenQueueSize))
+ if ((relative > 0) && (relative < m_ops.getTokenQueueSize()))
{
- tok = (String) m_ops.m_tokenQueue[relative];
+ tok = (String) m_ops.m_tokenQueue.elementAt(relative);
}
else
{
@@ -508,7 +508,7 @@
{
m_queueMark--;
- m_token = (String) m_ops.m_tokenQueue[m_queueMark];
+ m_token = (String) m_ops.m_tokenQueue.elementAt(m_queueMark);
m_tokenChar = m_token.charAt(0);
}
else
@@ -672,13 +672,13 @@
int q = m_queueMark;
String returnMsg;
- if (q < m_ops.m_tokenQueueSize)
+ if (q < m_ops.getTokenQueueSize())
{
String msg = "\n Remaining tokens: (";
- while (q < m_ops.m_tokenQueueSize)
+ while (q < m_ops.getTokenQueueSize())
{
- String t = (String) m_ops.m_tokenQueue[q++];
+ String t = (String) m_ops.m_tokenQueue.elementAt(q++);
msg += (" '" + t + "'");
}
@@ -735,15 +735,15 @@
void insertOp(int pos, int length, int op)
{
- int totalLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int totalLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
for (int i = totalLen - 1; i >= pos; i--)
{
- m_ops.m_opMap[i + length] = m_ops.m_opMap[i];
+ m_ops.setOp(i + length, m_ops.getOp(i));
}
- m_ops.m_opMap[pos] = op;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] = totalLen + length;
+ m_ops.setOp(pos,op);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,totalLen + length);
}
/**
@@ -757,11 +757,11 @@
void appendOp(int length, int op)
{
- int totalLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int totalLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
- m_ops.m_opMap[totalLen] = op;
- m_ops.m_opMap[totalLen + OpMap.MAPINDEX_LENGTH] = length;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] = totalLen + length;
+ m_ops.setOp(totalLen, op);
+ m_ops.setOp(totalLen + OpMap.MAPINDEX_LENGTH, length);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, totalLen + length);
}
// ============= EXPRESSIONS FUNCTIONS =================
@@ -791,7 +791,7 @@
protected void OrExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
AndExpr();
@@ -801,8 +801,8 @@
insertOp(opPos, 2, OpCodes.OP_OR);
OrExpr();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
}
@@ -818,7 +818,7 @@
protected void AndExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
EqualityExpr(-1);
@@ -828,8 +828,8 @@
insertOp(opPos, 2, OpCodes.OP_AND);
AndExpr();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
}
@@ -851,7 +851,7 @@
protected int EqualityExpr(int addPos) throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if (-1 == addPos)
addPos = opPos;
@@ -866,11 +866,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_NOTEQUALS);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = EqualityExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs('='))
@@ -878,11 +878,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_EQUALS);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = EqualityExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
}
@@ -911,7 +911,7 @@
protected int RelationalExpr(int addPos) throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if (-1 == addPos)
addPos = opPos;
@@ -934,11 +934,11 @@
insertOp(addPos, 2, OpCodes.OP_LT);
}
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = RelationalExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs('>'))
@@ -955,11 +955,11 @@
insertOp(addPos, 2, OpCodes.OP_GT);
}
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = RelationalExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
}
@@ -986,7 +986,7 @@
protected int AdditiveExpr(int addPos) throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if (-1 == addPos)
addPos = opPos;
@@ -1000,11 +1000,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_PLUS);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = AdditiveExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs('-'))
@@ -1012,11 +1012,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_MINUS);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = AdditiveExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
}
@@ -1044,7 +1044,7 @@
protected int MultiplicativeExpr(int addPos) throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if (-1 == addPos)
addPos = opPos;
@@ -1058,11 +1058,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_MULT);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = MultiplicativeExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs("div"))
@@ -1070,11 +1070,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_DIV);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = MultiplicativeExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs("mod"))
@@ -1082,11 +1082,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_MOD);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = MultiplicativeExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
else if (tokenIs("quo"))
@@ -1094,11 +1094,11 @@
nextToken();
insertOp(addPos, 2, OpCodes.OP_QUO);
- int opPlusLeftHandLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - addPos;
+ int opPlusLeftHandLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - addPos;
addPos = MultiplicativeExpr(addPos);
- m_ops.m_opMap[addPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[addPos + opPlusLeftHandLen + 1] + opPlusLeftHandLen;
+ m_ops.setOp(addPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(addPos + opPlusLeftHandLen + 1) + opPlusLeftHandLen);
addPos += 2;
}
}
@@ -1117,7 +1117,7 @@
protected void UnaryExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
boolean isNeg = false;
if (m_tokenChar == '-')
@@ -1131,8 +1131,8 @@
UnionExpr();
if (isNeg)
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1145,13 +1145,13 @@
protected void StringExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
appendOp(2, OpCodes.OP_STRING);
Expr();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1165,19 +1165,19 @@
protected void BooleanExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
appendOp(2, OpCodes.OP_BOOL);
Expr();
- int opLen = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ int opLen = m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos;
if (opLen == 2)
{
error(XPATHErrorResources.ER_BOOLEAN_ARG_NO_LONGER_OPTIONAL, null); //"boolean(...) argument is no longer optional with 19990709 XPath draft.");
}
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] = opLen;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH, opLen);
}
/**
@@ -1191,13 +1191,13 @@
protected void NumberExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
appendOp(2, OpCodes.OP_NUMBER);
Expr();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1216,7 +1216,7 @@
protected void UnionExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
boolean continueOrLoop = true;
boolean foundUnion = false;
@@ -1244,8 +1244,8 @@
}
while (continueOrLoop);
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1262,7 +1262,7 @@
protected void PathExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
int filterExprMatch = FilterExpr();
@@ -1295,10 +1295,10 @@
// Terminate for safety.
if (locationPathStarted)
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
}
else
@@ -1327,7 +1327,7 @@
protected int FilterExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
int filterMatch;
@@ -1384,15 +1384,15 @@
{
boolean matchFound;
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if ((m_tokenChar == '\'') || (m_tokenChar == '"'))
{
appendOp(2, OpCodes.OP_LITERAL);
Literal();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
matchFound = true;
}
@@ -1402,8 +1402,8 @@
appendOp(2, OpCodes.OP_VARIABLE);
QName();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
matchFound = true;
}
@@ -1414,8 +1414,8 @@
Expr();
consumeExpected(')');
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
matchFound = true;
}
@@ -1425,8 +1425,8 @@
appendOp(2, OpCodes.OP_NUMBERLIT);
Number();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
matchFound = true;
}
@@ -1452,13 +1452,13 @@
protected void Argument() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
appendOp(2, OpCodes.OP_ARGUMENT);
Expr();
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1472,18 +1472,18 @@
protected boolean FunctionCall() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
if (lookahead(':', 1))
{
appendOp(4, OpCodes.OP_EXTFUNCTION);
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 1] = m_queueMark - 1;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 1, m_queueMark - 1);
nextToken();
consumeExpected(':');
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 2] = m_queueMark - 1;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 2, m_queueMark - 1);
nextToken();
}
@@ -1508,7 +1508,7 @@
default :
appendOp(3, OpCodes.OP_FUNCTION);
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 1] = funcTok;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 1, funcTok);
}
nextToken();
@@ -1540,10 +1540,10 @@
consumeExpected(')');
// Terminate for safety.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
return true;
}
@@ -1561,7 +1561,7 @@
protected void LocationPath() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
// int locationPathOpPos = opPos;
appendOp(2, OpCodes.OP_LOCATIONPATH);
@@ -1573,9 +1573,8 @@
appendOp(4, OpCodes.FROM_ROOT);
// Tell how long the step is without the predicate
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =
- OpCodes.NODETYPE_ROOT;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 2, 4);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, OpCodes.NODETYPE_ROOT);
nextToken();
}
@@ -1592,10 +1591,10 @@
}
// Terminate for safety.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1642,7 +1641,7 @@
*/
protected boolean Step() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
boolean doubleSlash = tokenIs('/');
@@ -1661,20 +1660,19 @@
// by a regular step pattern.
// Make room for telling how long the step is without the predicate
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] =
- OpCodes.NODETYPE_NODE;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.NODETYPE_NODE);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH,m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
// Tell how long the step is without the predicate
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 1] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 1,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
// Tell how long the step is with the predicate
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
- opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
}
if (tokenIs("."))
@@ -1689,9 +1687,8 @@
appendOp(4, OpCodes.FROM_SELF);
// Tell how long the step is without the predicate
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =
- OpCodes.NODETYPE_NODE;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 2,4);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, OpCodes.NODETYPE_NODE);
}
else if (tokenIs(".."))
{
@@ -1699,9 +1696,8 @@
appendOp(4, OpCodes.FROM_PARENT);
// Tell how long the step is without the predicate
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =
- OpCodes.NODETYPE_NODE;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 2,4);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, OpCodes.NODETYPE_NODE);
}
// There is probably a better way to test for this
@@ -1718,8 +1714,8 @@
}
// Tell how long the entire step is.
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
else
{
@@ -1746,7 +1742,7 @@
protected void Basis() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
int axesType;
// The next blocks guarantee that a FROM_XXX will be added.
@@ -1772,14 +1768,14 @@
}
// Make room for telling how long the step is without the predicate
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
NodeTest(axesType);
// Tell how long the step is without the predicate
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 1] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
- }
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 1,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
+ }
/**
*
@@ -1836,8 +1832,8 @@
int nt = ((Integer) nodeTestOp).intValue();
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = nt;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), nt);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
consumeExpected('(');
@@ -1856,20 +1852,18 @@
{
// Assume name of attribute or element.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.NODENAME;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.NODENAME);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
if (lookahead(':', 1))
{
if (tokenIs('*'))
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] =
- OpCodes.ELEMWILDCARD;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ELEMWILDCARD);
}
else
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark
- - 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
// Minimalist check for an NCName - just check first character
// to distinguish from other possible tokens
@@ -1885,29 +1879,28 @@
}
else
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.EMPTY;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.EMPTY);
}
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
if (tokenIs('*'))
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] =
- OpCodes.ELEMWILDCARD;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ELEMWILDCARD);
}
else
{
if (OpCodes.FROM_NAMESPACE == axesType)
{
- String prefix = (String) this.m_ops.m_tokenQueue[m_queueMark - 1];
+ String prefix = (String) this.m_ops.m_tokenQueue.elementAt(m_queueMark - 1);
String namespace =
((PrefixResolver) m_namespaceContext).getNamespaceForPrefix(
prefix);
- this.m_ops.m_tokenQueue[m_queueMark - 1] = namespace;
+ this.m_ops.m_tokenQueue.setElementAt(namespace,m_queueMark - 1);
}
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
// Minimalist check for an NCName - just check first character
// to distinguish from other possible tokens
@@ -1918,7 +1911,7 @@
}
}
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
}
@@ -1952,16 +1945,16 @@
protected void PredicateExpr() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
appendOp(2, OpCodes.OP_PREDICATE);
Expr();
// Terminate for safety.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -1976,21 +1969,21 @@
// Namespace
if(lookahead(':', 1))
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
consumeExpected(':');
}
else
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.EMPTY;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.EMPTY);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
}
// Local name
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
}
@@ -2002,8 +1995,8 @@
protected void NCName()
{
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
}
@@ -2032,15 +2025,15 @@
// already made.
int tokenQueuePos = m_queueMark - 1;
- m_ops.m_tokenQueue[tokenQueuePos] = null;
+ m_ops.m_tokenQueue.setElementAt(null,tokenQueuePos);
Object obj = new XString(m_token.substring(1, last));
- m_ops.m_tokenQueue[tokenQueuePos] = obj;
+ m_ops.m_tokenQueue.setElementAt(obj,tokenQueuePos);
// lit = m_token.substring(1, last);
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = tokenQueuePos;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), tokenQueuePos);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
}
@@ -2080,9 +2073,9 @@
new Object[]{ m_token }); //m_token+" could not be formatted to a number!");
}
- m_ops.m_tokenQueue[m_queueMark - 1] = new XNumber(num);
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = m_queueMark - 1;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.m_tokenQueue.setElementAt(new XNumber(num),m_queueMark - 1);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), m_queueMark - 1);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
nextToken();
}
@@ -2129,7 +2122,7 @@
protected void LocationPathPattern() throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
final int RELATIVE_PATH_NOT_PERMITTED = 0;
final int RELATIVE_PATH_PERMITTED = 1;
@@ -2161,9 +2154,8 @@
}
// Tell how long the step is without the predicate
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =
- OpCodes.NODETYPE_FUNCTEST;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 2, 4);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, OpCodes.NODETYPE_FUNCTEST);
relativePathStatus = RELATIVE_PATH_REQUIRED;
}
@@ -2191,9 +2183,8 @@
// Tell how long the step is without the predicate
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 2] = 4;
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - 1] =
- OpCodes.NODETYPE_ROOT;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 2, 4);
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH) - 1, OpCodes.NODETYPE_ROOT);
nextToken();
}
@@ -2216,10 +2207,10 @@
}
// Terminate for safety.
- m_ops.m_opMap[m_ops.m_opMap[OpMap.MAPINDEX_LENGTH]] = OpCodes.ENDOP;
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(m_ops.getOp(OpMap.MAPINDEX_LENGTH), OpCodes.ENDOP);
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
}
/**
@@ -2295,7 +2286,7 @@
throws javax.xml.transform.TransformerException
{
- int opPos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ int opPos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
int axesType;
// The next blocks guarantee that a MATCH_XXX will be added.
@@ -2318,7 +2309,7 @@
}
else if (tokenIs("child"))
{
- matchTypePos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ matchTypePos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
axesType = OpCodes.MATCH_IMMEDIATE_ANCESTOR;
appendOp(2, axesType);
@@ -2348,20 +2339,20 @@
}
else
{
- matchTypePos = m_ops.m_opMap[OpMap.MAPINDEX_LENGTH];
+ matchTypePos = m_ops.getOp(OpMap.MAPINDEX_LENGTH);
axesType = OpCodes.MATCH_IMMEDIATE_ANCESTOR;
appendOp(2, axesType);
}
// Make room for telling how long the step is without the predicate
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] += 1;
+ m_ops.setOp(OpMap.MAPINDEX_LENGTH, m_ops.getOp(OpMap.MAPINDEX_LENGTH) + 1);
NodeTest(axesType);
// Tell how long the step is without the predicate
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH + 1] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH + 1,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
while (tokenIs('['))
{
@@ -2384,7 +2375,7 @@
// MATCH_ANY_ANCESTOR on next call instead.
if ((matchTypePos > -1) && tokenIs('/') && lookahead('/', 1))
{
- m_ops.m_opMap[matchTypePos] = OpCodes.MATCH_ANY_ANCESTOR;
+ m_ops.setOp(matchTypePos, OpCodes.MATCH_ANY_ANCESTOR);
nextToken();
@@ -2396,8 +2387,8 @@
}
// Tell how long the entire step is.
- m_ops.m_opMap[opPos + OpMap.MAPINDEX_LENGTH] =
- m_ops.m_opMap[OpMap.MAPINDEX_LENGTH] - opPos;
+ m_ops.setOp(opPos + OpMap.MAPINDEX_LENGTH,
+ m_ops.getOp(OpMap.MAPINDEX_LENGTH) - opPos);
return trailingSlashConsumed;
}
1.12 +12 -16 xml-xalan/java/src/org/apache/xpath/compiler/Lexer.java
Index: Lexer.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/Lexer.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- Lexer.java 11 Jun 2002 18:58:05 -0000 1.11
+++ Lexer.java 7 Oct 2002 15:29:02 -0000 1.12
@@ -56,15 +56,10 @@
*/
package org.apache.xpath.compiler;
-import org.apache.xml.utils.PrefixResolver;
-
import java.util.Vector;
+import org.apache.xml.utils.PrefixResolver;
import org.apache.xpath.res.XPATHErrorResources;
-import org.apache.xpath.XPath;
-import org.apache.xpath.compiler.Compiler;
-import org.apache.xpath.compiler.OpCodes;
-import org.apache.xpath.compiler.XPathParser;
/**
* This class is in charge of lexical processing of the XPath
@@ -151,13 +146,14 @@
throws javax.xml.transform.TransformerException
{
- m_compiler.m_tokenQueueSize = 0;
m_compiler.m_currentPattern = pat;
- m_patternMapSize = 0;
- m_compiler.m_opMap = new int[OpMap.MAXTOKENQUEUESIZE * 5];
+ m_patternMapSize = 0;
+
+ // This needs to grow too.
+ m_compiler.m_opMap = new OpMapVector(OpMap.MAXTOKENQUEUESIZE * 5, OpMap.BLOCKTOKENQUEUESIZE * 5, OpMap.MAPINDEX_LENGTH);
int nChars = pat.length();
- int startSubstring = -1;
+ int startSubstring = -1;
int posOfNSSep = -1;
boolean isStartOfPat = true;
boolean isAttrName = false;
@@ -403,7 +399,7 @@
}
}
- if (0 == m_compiler.m_tokenQueueSize)
+ if (0 == m_compiler.getTokenQueueSize())
{
m_processor.error(XPATHErrorResources.ER_EMPTY_EXPRESSION, null); //"Empty expression!");
}
@@ -444,7 +440,7 @@
m_patternMap[m_patternMapSize - 1] -= TARGETEXTRA;
}
m_patternMap[m_patternMapSize] =
- (m_compiler.m_tokenQueueSize - (isAttrName ? 1 : 0)) + TARGETEXTRA;
+ (m_compiler.getTokenQueueSize() - (isAttrName ? 1 : 0)) + TARGETEXTRA;
m_patternMapSize++;
@@ -477,7 +473,7 @@
private final void resetTokenMark(int mark)
{
- int qsz = m_compiler.m_tokenQueueSize;
+ int qsz = m_compiler.getTokenQueueSize();
m_processor.m_queueMark = (mark > 0)
? ((mark <= qsz) ? mark - 1 : mark) : 0;
@@ -485,7 +481,7 @@
if (m_processor.m_queueMark < qsz)
{
m_processor.m_token =
- (String) m_compiler.m_tokenQueue[m_processor.m_queueMark++];
+ (String) m_compiler.getTokenQueue().elementAt(m_processor.m_queueMark++);
m_processor.m_tokenChar = m_processor.m_token.charAt(0);
}
else
@@ -579,7 +575,7 @@
tokPos += 2;
}
- targetStrings.addElement(m_compiler.m_tokenQueue[tokPos]);
+ targetStrings.addElement(m_compiler.getTokenQueue().elementAt(tokPos));
}
}
@@ -591,7 +587,7 @@
*/
private final void addToTokenQueue(String s)
{
- m_compiler.m_tokenQueue[m_compiler.m_tokenQueueSize++] = s;
+ m_compiler.getTokenQueue().addElement(s);
}
/**
1.30 +16 -16 xml-xalan/java/src/org/apache/xpath/compiler/Compiler.java
Index: Compiler.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/Compiler.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Compiler.java 27 Jun 2002 14:48:35 -0000 1.29
+++ Compiler.java 7 Oct 2002 15:29:02 -0000 1.30
@@ -146,7 +146,7 @@
public Expression compile(int opPos) throws TransformerException
{
- int op = m_opMap[opPos];
+ int op = getOp(opPos);
Expression expr = null;
// System.out.println(getPatternString()+"op: "+op);
@@ -220,7 +220,7 @@
break;
default :
error(XPATHErrorResources.ER_UNKNOWN_OPCODE,
- new Object[]{ Integer.toString(m_opMap[opPos]) }); //"ERROR! Unknown op code: "+m_opMap[opPos]);
+ new Object[]{ Integer.toString(getOp(opPos)) }); //"ERROR! Unknown op code: "+m_opMap[opPos]);
}
// if(null != expr)
// expr.setSourceLocator(m_locator);
@@ -537,7 +537,7 @@
opPos = getFirstChildPos(opPos);
- return (XString) m_tokenQueue[m_opMap[opPos]];
+ return (XString) getTokenQueue().elementAt(getOp(opPos));
}
/**
@@ -554,7 +554,7 @@
opPos = getFirstChildPos(opPos);
- return (XNumber) m_tokenQueue[m_opMap[opPos]];
+ return (XNumber) getTokenQueue().elementAt(getOp(opPos));
}
/**
@@ -573,12 +573,12 @@
opPos = getFirstChildPos(opPos);
- int nsPos = m_opMap[opPos];
+ int nsPos = getOp(opPos);
java.lang.String namespace
= (OpCodes.EMPTY == nsPos) ? null
- : (java.lang.String) m_tokenQueue[nsPos];
+ : (java.lang.String) getTokenQueue().elementAt(nsPos);
java.lang.String localname
- = (java.lang.String) m_tokenQueue[m_opMap[opPos+1]];
+ = (java.lang.String) getTokenQueue().elementAt(getOp(opPos+1));
QName qname = new QName(namespace, localname);
var.setQName(qname);
@@ -708,7 +708,7 @@
int nextOpPos = opPos;
int i;
- for (i = 0; m_opMap[nextOpPos] == OpCodes.OP_LOCATIONPATHPATTERN; i++)
+ for (i = 0; getOp(nextOpPos) == OpCodes.OP_LOCATIONPATHPATTERN; i++)
{
nextOpPos = getNextOpPos(nextOpPos);
}
@@ -719,7 +719,7 @@
UnionPattern up = new UnionPattern();
StepPattern[] patterns = new StepPattern[i];
- for (i = 0; m_opMap[opPos] == OpCodes.OP_LOCATIONPATHPATTERN; i++)
+ for (i = 0; getOp(opPos) == OpCodes.OP_LOCATIONPATHPATTERN; i++)
{
nextOpPos = getNextOpPos(opPos);
patterns[i] = (StepPattern) compile(opPos);
@@ -848,7 +848,7 @@
{
int startOpPos = opPos;
- int stepType = getOpMap()[opPos];
+ int stepType = getOp(opPos);
if (OpCodes.ENDOP == stepType)
{
@@ -871,7 +871,7 @@
if(DEBUG)
System.out.println("MATCH_FUNCTION: "+m_currentPattern);
addMagicSelf = false;
- argLen = m_opMap[opPos + OpMap.MAPINDEX_LENGTH];
+ argLen = getOp(opPos + OpMap.MAPINDEX_LENGTH);
pattern = new FunctionPattern(compileFunction(opPos), Axis.PARENT, Axis.CHILD);
break;
case OpCodes.FROM_ROOT :
@@ -1042,11 +1042,11 @@
Expression compileFunction(int opPos) throws TransformerException
{
- int endFunc = opPos + m_opMap[opPos + 1] - 1;
+ int endFunc = opPos + getOp(opPos + 1) - 1;
opPos = getFirstChildPos(opPos);
- int funcID = m_opMap[opPos];
+ int funcID = getOp(opPos);
opPos++;
@@ -1103,16 +1103,16 @@
throws TransformerException
{
- int endExtFunc = opPos + m_opMap[opPos + 1] - 1;
+ int endExtFunc = opPos + getOp(opPos + 1) - 1;
opPos = getFirstChildPos(opPos);
- java.lang.String ns = (java.lang.String) m_tokenQueue[m_opMap[opPos]];
+ java.lang.String ns = (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
opPos++;
java.lang.String funcName =
- (java.lang.String) m_tokenQueue[m_opMap[opPos]];
+ (java.lang.String) getTokenQueue().elementAt(getOp(opPos));
opPos++;
1.12 +55 -50 xml-xalan/java/src/org/apache/xpath/compiler/OpMap.java
Index: OpMap.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/compiler/OpMap.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- OpMap.java 27 Jun 2002 14:48:35 -0000 1.11
+++ OpMap.java 7 Oct 2002 15:29:02 -0000 1.12
@@ -58,6 +58,10 @@
import java.util.Vector;
+import org.apache.xml.utils.IntVector;
+import org.apache.xml.utils.ObjectVector;
+import org.apache.xml.utils.IntVector;
+import org.apache.xml.utils.ObjectVector;
import org.apache.xml.utils.QName;
import org.apache.xpath.patterns.NodeTest;
import org.apache.xpath.res.XPATHErrorResources;
@@ -96,23 +100,28 @@
}
/**
- * The max size that the token queue can grow to.
+ * The starting size of the token queue.
*/
static final int MAXTOKENQUEUESIZE = 500;
+ /*
+ * Amount to grow token queue when it becomes full
+ */
+ static final int BLOCKTOKENQUEUESIZE = 500;
+
/**
* TokenStack is the queue of used tokens. The current token is the token at the
* end of the m_tokenQueue. The idea is that the queue can be marked and a sequence
* of tokens can be reused.
*/
- public Object[] m_tokenQueue = new Object[MAXTOKENQUEUESIZE];
+ ObjectVector m_tokenQueue = new ObjectVector(MAXTOKENQUEUESIZE, BLOCKTOKENQUEUESIZE);
/**
* Get the XPath as a list of tokens.
*
- * @return an array of string tokens.
+ * @return ObjectVector of tokens.
*/
- public Object[] getTokenQueue()
+ public ObjectVector getTokenQueue()
{
return m_tokenQueue;
}
@@ -126,13 +135,13 @@
*/
public Object getToken(int pos)
{
- return m_tokenQueue[pos];
+ return m_tokenQueue.elementAt(pos);
}
/**
* The current size of the token queue.
*/
- public int m_tokenQueueSize = 0;
+// public int m_tokenQueueSize = 0;
/**
* Get size of the token queue.
@@ -141,7 +150,8 @@
*/
public int getTokenQueueSize()
{
- return m_tokenQueueSize;
+ return m_tokenQueue.size();
+
}
/**
@@ -150,7 +160,7 @@
* I use an array instead of a full parse tree in order to cut down
* on the number of objects created.
*/
- public int m_opMap[] = null;
+ OpMapVector m_opMap = null;
/**
* Get the opcode list that describes the XPath operations. It contains
@@ -158,9 +168,9 @@
* I use an array instead of a full parse tree in order to cut down
* on the number of objects created.
*
- * @return An array of integers that is the opcode list that describes the XPath operations.
+ * @return An IntVector that is the opcode list that describes the XPath operations.
*/
- public int[] getOpMap()
+ public OpMapVector getOpMap()
{
return m_opMap;
}
@@ -181,36 +191,20 @@
void shrink()
{
- int map[] = m_opMap;
- int n = m_opMap[MAPINDEX_LENGTH];
- ;
-
- m_opMap = new int[n + 4];
-
- int i;
+ int n = m_opMap.elementAt(MAPINDEX_LENGTH);
+ m_opMap.setToSize(n + 4);
- for (i = 0; i < n; i++)
- {
- m_opMap[i] = map[i];
- }
-
- m_opMap[i] = 0;
- m_opMap[i + 1] = 0;
- m_opMap[i + 2] = 0;
+ m_opMap.setElementAt(0,n);
+ m_opMap.setElementAt(0,n+1);
+ m_opMap.setElementAt(0,n+2);
- Object[] tokens = m_tokenQueue;
- n = m_tokenQueueSize;
- m_tokenQueue = new Object[n + 4];
-
- for (i = 0; i < n; i++)
- {
- m_tokenQueue[i] = tokens[i];
- }
+ n = m_tokenQueue.size();
+ m_tokenQueue.setToSize(n + 4);
- m_tokenQueue[i] = null;
- m_tokenQueue[i + 1] = null;
- m_tokenQueue[i + 2] = null;
+ m_tokenQueue.setElementAt(null,n);
+ m_tokenQueue.setElementAt(null,n + 1);
+ m_tokenQueue.setElementAt(null,n + 2);
}
/**
@@ -221,10 +215,21 @@
*/
public int getOp(int opPos)
{
- return m_opMap[opPos];
+ return m_opMap.elementAt(opPos);
}
/**
+ * Set the op at index to the given int.
+ *
+ * @param opPos index into op map.
+ * @param value Value to set
+ */
+ public void setOp(int opPos, int value)
+ {
+ m_opMap.setElementAt(value,opPos);
+ }
+
+ /**
* Given an operation position, return the end position, i.e. the
* beginning of the next operation.
*
@@ -234,7 +239,7 @@
*/
public int getNextOpPos(int opPos)
{
- return opPos + m_opMap[opPos + 1];
+ return opPos + m_opMap.elementAt(opPos + 1);
}
/**
@@ -311,17 +316,17 @@
throws javax.xml.transform.TransformerException
{
- int stepType = m_opMap[opPos];
+ int stepType = m_opMap.elementAt(opPos);
if ((stepType >= OpCodes.AXES_START_TYPES)
&& (stepType <= OpCodes.AXES_END_TYPES))
{
- return opPos + m_opMap[opPos + 2];
+ return opPos + m_opMap.elementAt(opPos + 2);
}
else if ((stepType >= OpCodes.FIRST_NODESET_OP)
&& (stepType <= OpCodes.LAST_NODESET_OP))
{
- return opPos + m_opMap[opPos + 1];
+ return opPos + m_opMap.elementAt(opPos + 1);
}
else if(-2 == stepType)
{
@@ -379,7 +384,7 @@
*/
public int getArgLength(int opPos)
{
- return m_opMap[opPos + MAPINDEX_LENGTH];
+ return m_opMap.elementAt(opPos + MAPINDEX_LENGTH);
}
/**
@@ -391,7 +396,7 @@
*/
public int getArgLengthOfStep(int opPos)
{
- return m_opMap[opPos + MAPINDEX_LENGTH + 1] - 3;
+ return m_opMap.elementAt(opPos + MAPINDEX_LENGTH + 1) - 3;
}
/**
@@ -415,7 +420,7 @@
*/
public int getStepTestType(int opPosOfStep)
{
- return m_opMap[opPosOfStep + 3]; // skip past op, len, len without predicates
+ return m_opMap.elementAt(opPosOfStep + 3); // skip past op, len, len without predicates
}
/**
@@ -433,10 +438,10 @@
// System.out.println("getStepNS.argLenOfStep: "+argLenOfStep);
if (argLenOfStep == 3)
{
- int index = m_opMap[opPosOfStep + 4];
+ int index = m_opMap.elementAt(opPosOfStep + 4);
if (index >= 0)
- return (String) m_tokenQueue[index];
+ return (String) m_tokenQueue.elementAt(index);
else if (OpCodes.ELEMWILDCARD == index)
return NodeTest.WILD;
else
@@ -469,10 +474,10 @@
index = OpCodes.ELEMWILDCARD;
break;
case 2 :
- index = m_opMap[opPosOfStep + 4];
+ index = m_opMap.elementAt(opPosOfStep + 4);
break;
case 3 :
- index = m_opMap[opPosOfStep + 5];
+ index = m_opMap.elementAt(opPosOfStep + 5);
break;
default :
index = OpCodes.EMPTY;
@@ -482,11 +487,11 @@
// int index = (argLenOfStep == 3) ? m_opMap[opPosOfStep+5]
// : ((argLenOfStep == 1) ? -3 : -2);
if (index >= 0)
- return (String) m_tokenQueue[index].toString();
+ return (String) m_tokenQueue.elementAt(index).toString();
else if (OpCodes.ELEMWILDCARD == index)
return NodeTest.WILD;
else
return null;
}
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org