/** * Add a field annotation for the field which has just been accessed by the * method currently being visited by given visitor. Assumes that a * getfield/putfield or getstatic/putstatic has just been seen. * * @param visitor * the DismantleBytecode object * @return this object */ @Nonnull public BugInstance addReferencedField(DismantleBytecode visitor) { FieldAnnotation f = FieldAnnotation.fromReferencedField(visitor); addField(f); return this; }
case 0: if (seen == Const.GETFIELD || seen == Const.GETSTATIC) { syncField = FieldAnnotation.fromReferencedField(this); currState = 1; case 4: if (seen == Const.GETFIELD || seen == Const.GETSTATIC) { gottenField = FieldAnnotation.fromReferencedField(this); currState = 5; } else {
System.out.println(" getfield in stage " + stage); lastFieldSeen = FieldAnnotation.fromReferencedField(this); start = getPC(); stage = 2; System.out.println(" getfield in stage " + stage); lastFieldSeen = FieldAnnotation.fromReferencedField(this); if (stage == 1 || stage == 2) { stage = 2;
initializedFields.add(FieldAnnotation.fromReferencedField(this)); } else if (thisOnTOS && seen == Const.GETFIELD && getClassConstantOperand().equals(getClassName())) { UnreadFieldsData unreadFields = AnalysisContext.currentAnalysisContext().getUnreadFieldsData(); XField xField = XFactory.createReferencedXField(this); FieldAnnotation f = FieldAnnotation.fromReferencedField(this); int nextOpcode = 0xff & codeBytes[getPC() + 3]; if (nextOpcode != Const.POP && !initializedFields.contains(f) && declaredFields.contains(f) && !containerFields.contains(f)
pendingFieldLoad = FieldAnnotation.fromReferencedField(this); if (DEBUG) { System.out.println("\t" + pendingFieldLoad); case 3: if (seen == Const.PUTFIELD || seen == Const.PUTSTATIC) { FieldAnnotation f = FieldAnnotation.fromReferencedField(this); if (DEBUG) { System.out.println("\t" + f);
annotations.add(FieldAnnotation.fromReferencedField(this)); } else { annotations.add(LocalVariableAnnotation.getLocalVariableAnnotation(getMethod(), getRegisterOperand(), getPC(), getNextPC()));
FieldAnnotation field = FieldAnnotation.fromReferencedField(dbc); Item i = new Item(dbc.getSigConstantOperand(), field, Integer.MAX_VALUE); if ("separator".equals(field.getFieldName()) && "java.io.File".equals(field.getClassName())) { Item valueLoaded = new Item(dbc.getSigConstantOperand(), FieldAnnotation.fromReferencedField(dbc), reg); valueLoaded.setPC(dbc.getPC()); push(valueLoaded);
/** * Add a field annotation for the field which has just been accessed by the * method currently being visited by given visitor. Assumes that a * getfield/putfield or getstatic/putstatic has just been seen. * * @param visitor * the DismantleBytecode object * @return this object */ @Nonnull public BugInstance addReferencedField(DismantleBytecode visitor) { FieldAnnotation f = FieldAnnotation.fromReferencedField(visitor); addField(f); return this; }
case 0: if (seen == GETFIELD || seen == GETSTATIC) { syncField = FieldAnnotation.fromReferencedField(this); currState = 1; case 4: if (seen == GETFIELD || seen == GETSTATIC) { gottenField = FieldAnnotation.fromReferencedField(this); currState = 5; } else {
System.out.println(" getfield in stage " + stage); lastFieldSeen = FieldAnnotation.fromReferencedField(this); start = getPC(); stage = 2; System.out.println(" getfield in stage " + stage); lastFieldSeen = FieldAnnotation.fromReferencedField(this); if (stage == 1 || stage == 2) { stage = 2;
initializedFields.add(FieldAnnotation.fromReferencedField(this)); } else if (thisOnTOS && seen == GETFIELD && getClassConstantOperand().equals(getClassName())) { UnreadFieldsData unreadFields = AnalysisContext.currentAnalysisContext().getUnreadFieldsData(); XField xField = XFactory.createReferencedXField(this); FieldAnnotation f = FieldAnnotation.fromReferencedField(this); int nextOpcode = 0xff & codeBytes[getPC() + 3]; if (nextOpcode != POP && !initializedFields.contains(f) && declaredFields.contains(f) && !containerFields.contains(f)
pendingFieldLoad = FieldAnnotation.fromReferencedField(this); if (DEBUG) { System.out.println("\t" + pendingFieldLoad); case 3: if (seen == PUTFIELD || seen == PUTSTATIC) { FieldAnnotation f = FieldAnnotation.fromReferencedField(this); if (DEBUG) { System.out.println("\t" + f);
FieldAnnotation f = FieldAnnotation.fromReferencedField(this); String sig = f.getFieldSignature(); if (sig.startsWith(Values.SIG_QUALIFIED_CLASS_PREFIX)) {
FieldAnnotation f = FieldAnnotation.fromReferencedField(this); String sig = f.getFieldSignature(); if (sig.startsWith(Values.SIG_QUALIFIED_CLASS_PREFIX)) {
FieldAnnotation field = FieldAnnotation.fromReferencedField(dbc); Item i = new Item(dbc.getSigConstantOperand(), field, Integer.MAX_VALUE); if ("separator".equals(field.getFieldName()) && "java.io.File".equals(field.getClassName())) { Item valueLoaded = new Item(dbc.getSigConstantOperand(), FieldAnnotation.fromReferencedField(dbc), reg); valueLoaded.setPC(dbc.getPC()); push(valueLoaded);