Revision 44198 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultOptimizer.java
DefaultOptimizer.java | ||
---|---|---|
153 | 153 |
} else { |
154 | 154 |
switch (caller.type()) { |
155 | 155 |
case Caller.BINARY_OPERATOR: { |
156 |
Code op1 = this.doOptimize(caller.args().get(0));
|
|
157 |
Code op2 = this.doOptimize(caller.args().get(1));
|
|
156 |
Code op1 = this.doOptimize(caller.parameters().get(0));
|
|
157 |
Code op2 = this.doOptimize(caller.parameters().get(1));
|
|
158 | 158 |
if (caller.function().allowConstantFolding()) { |
159 | 159 |
if (op1.code() == Code.CONSTANT && op2.code() == Code.CONSTANT) { |
160 | 160 |
Object value = this.getInterpreter().run(code); |
... | ... | |
167 | 167 |
} |
168 | 168 |
|
169 | 169 |
case Code.Caller.UNARY_OPERATOR: { |
170 |
Code op1 = this.doOptimize(caller.args().get(0));
|
|
170 |
Code op1 = this.doOptimize(caller.parameters().get(0));
|
|
171 | 171 |
if (caller.function().allowConstantFolding() |
172 | 172 |
&& op1.code() == Code.CONSTANT) { |
173 | 173 |
Object value = this.getInterpreter().run(code); |
... | ... | |
181 | 181 |
default: { |
182 | 182 |
BaseCodes newArgs = null; |
183 | 183 |
boolean canOptimize = true; |
184 |
if (caller.args() != null) {
|
|
184 |
if (caller.parameters() != null) {
|
|
185 | 185 |
newArgs = (BaseCodes) this.getCodeBuilder().args(); |
186 |
for (Code arg : caller.args()) {
|
|
186 |
for (Code arg : caller.parameters()) {
|
|
187 | 187 |
Code newArg = this.doOptimize(arg); |
188 | 188 |
newArgs.add(newArg); |
189 | 189 |
if (newArg.code() != Code.CONSTANT) { |
Also available in: Unified diff