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

View differences:

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