|
|
|
|
@ -37,9 +37,9 @@ public class OpNE extends Operator {
@@ -37,9 +37,9 @@ public class OpNE extends Operator {
|
|
|
|
|
this.exitTypeDescriptor = "Z"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public BooleanTypedValue getValueInternal(ExpressionState state) |
|
|
|
|
throws EvaluationException { |
|
|
|
|
public BooleanTypedValue getValueInternal(ExpressionState state) throws EvaluationException { |
|
|
|
|
Object left = getLeftOperand().getValueInternal(state).getValue(); |
|
|
|
|
Object right = getRightOperand().getValueInternal(state).getValue(); |
|
|
|
|
this.leftActualDescriptor = CodeFlow.toDescriptorFromObject(left); |
|
|
|
|
@ -87,11 +87,9 @@ public class OpNE extends Operator {
@@ -87,11 +87,9 @@ public class OpNE extends Operator {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
String operatorClassName = Operator.class.getName().replace('.', '/'); |
|
|
|
|
String evaluationContextClassName = EvaluationContext.class.getName().replace('.', |
|
|
|
|
'/'); |
|
|
|
|
mv.visitMethodInsn(INVOKESTATIC, operatorClassName, "equalityCheck", "(L" |
|
|
|
|
+ evaluationContextClassName + ";Ljava/lang/Object;Ljava/lang/Object;)Z", |
|
|
|
|
false); |
|
|
|
|
String evaluationContextClassName = EvaluationContext.class.getName().replace('.', '/'); |
|
|
|
|
mv.visitMethodInsn(INVOKESTATIC, operatorClassName, "equalityCheck", |
|
|
|
|
"(L" + evaluationContextClassName + ";Ljava/lang/Object;Ljava/lang/Object;)Z", false); |
|
|
|
|
|
|
|
|
|
// Invert the boolean
|
|
|
|
|
Label notZero = new Label(); |
|
|
|
|
|