if (field == null) { exceptions.add(new UnitValidationException(unit, body, "Resolved field is null: " + fr.toString())); } else if (!field.isStatic() && !field.isPhantom()) { exceptions .add(new UnitValidationException(unit, body, "Trying to get a static field which is non-static: " + v)); if (field == null) { exceptions.add(new UnitValidationException(unit, body, "Resolved field is null: " + fr.toString())); } else if (field.isStatic() && !field.isPhantom()) { exceptions.add(new UnitValidationException(unit, body, "Trying to get an instance field which is static: " + v));
private SootField checkStatic(SootField ret) { if ((Options.v().wrong_staticness() == Options.wrong_staticness_fail || Options.v().wrong_staticness() == Options.wrong_staticness_fixstrict) && ret.isStatic() != isStatic() && !ret.isPhantom()) { throw new ResolutionFailedException("Resolved " + this + " to " + ret + " which has wrong static-ness"); } return ret; }
SootField f = fieldIt.next(); if (f.isPhantom()) { continue;
SootField f = fieldIt.next(); if (f.isPhantom()) { continue;
for (SootField f : c.getFields()) { if (f.isPhantom()) { continue;
/** * Emits the bytecode for all fields of the class */ protected void generateFields() { for (SootField f : sc.getFields()) { if (f.isPhantom()) { continue; } String name = f.getName(); String desc = toTypeDesc(f.getType()); String sig = null; if (f.hasTag("SignatureTag")) { SignatureTag genericSignature = (SignatureTag) f.getTag("SignatureTag"); sig = genericSignature.getSignature(); } Object value = getDefaultValue(f); int access = getModifiers(f.getModifiers(), f); FieldVisitor fv = cv.visitField(access, name, desc, sig, value); if (fv != null) { generateAnnotations(fv, f); generateAttributes(fv, f); fv.visitEnd(); } } }
private SootField checkStatic(SootField ret) { if( ret.isStatic() != isStatic() && !ret.isPhantom()) { if(!TypeAssigner.v().ignoreWrongStaticNess()) { throw new ResolutionFailedException( "Resolved "+this+" to "+ret+" which has wrong static-ness" ); } } return ret; } private SootField resolve(StringBuffer trace) {
private SootField checkStatic(SootField ret) { if( ret.isStatic() != isStatic() && !ret.isPhantom()) { if(!TypeAssigner.v().ignoreWrongStaticNess()) { throw new ResolutionFailedException( "Resolved "+this+" to "+ret+" which has wrong static-ness" ); } } return ret; } private SootField resolve(StringBuffer trace) {
SootField f = (SootField) fieldIt.next(); if (f.isPhantom()) continue;
SootField f = (SootField) fieldIt.next(); if (f.isPhantom()) continue;