use of com.googlecode.dex2jar.ir.expr.Value.EnExpr in project dex2jar by pxb1988.
the class ArrayNullPointerTransformer method tryAdd.
private boolean tryAdd(Value value, List<Value> values) {
if (!arrayNPE(value)) {
values.add(value);
return true;
} else {
switch(value.et) {
case E0:
values.add(value);
break;
case E1:
E1Expr e1 = (E1Expr) value;
if (e1.op == null || e1.op.trim() == null) {
return false;
}
tryAdd(e1.op.trim(), values);
break;
case E2:
E2Expr e2 = (E2Expr) value;
if (e2.vt == VT.ARRAY && e2.op1.trim().vt == VT.CONSTANT) {
Constant cst = (Constant) e2.op1.trim();
if (cst.value.equals(Integer.valueOf(0))) {
tryAdd(e2.op2.trim(), values);
return false;
}
}
if (tryAdd(e2.op1.trim(), values)) {
tryAdd(e2.op2.trim(), values);
}
case En:
for (Value vb : ((EnExpr) value).ops) {
if (!tryAdd(vb.trim(), values)) {
break;
}
}
}
}
return false;
}