Search in sources :

Example 81 with OpcodeStack

use of edu.umd.cs.findbugs.OpcodeStack in project fb-contrib by mebigfatguy.

the class ConfusingFunctionSemantics method visitClassContext.

/**
 * implements the visitor to initialize/destroy the possible parameter registers and opcode stack
 *
 * @param classContext
 *            the context object of the currently parsed class
 */
@Override
public void visitClassContext(ClassContext classContext) {
    try {
        stack = new OpcodeStack();
        possibleParmRegs = new HashMap<>(10);
        super.visitClassContext(classContext);
    } finally {
        stack = null;
        possibleParmRegs = null;
    }
}
Also used : OpcodeStack(edu.umd.cs.findbugs.OpcodeStack)

Example 82 with OpcodeStack

use of edu.umd.cs.findbugs.OpcodeStack in project fb-contrib by mebigfatguy.

the class ContainsBasedConditional method visitClassContext.

@Override
public void visitClassContext(ClassContext classContext) {
    try {
        stack = new OpcodeStack();
        switchLocs = new BitSet();
        super.visitClassContext(classContext);
    } finally {
        switchLocs = null;
        stack = null;
    }
}
Also used : OpcodeStack(edu.umd.cs.findbugs.OpcodeStack) BitSet(java.util.BitSet)

Example 83 with OpcodeStack

use of edu.umd.cs.findbugs.OpcodeStack in project fb-contrib by mebigfatguy.

the class CustomBuiltXML method visitClassContext.

/**
 * overrides the visitor to create and destroy the stack
 *
 * @param classContext
 *            the context object of the currently parsed class
 */
@Override
public void visitClassContext(ClassContext classContext) {
    try {
        stack = new OpcodeStack();
        super.visitClassContext(classContext);
    } finally {
        stack = null;
    }
}
Also used : OpcodeStack(edu.umd.cs.findbugs.OpcodeStack)

Example 84 with OpcodeStack

use of edu.umd.cs.findbugs.OpcodeStack in project fb-contrib by mebigfatguy.

the class MapUsageIssues method visitClassContext.

@Override
public void visitClassContext(ClassContext classContext) {
    try {
        stack = new OpcodeStack();
        mapContainsKeyUsed = new HashMap<>();
        mapGetUsed = new HashMap<>();
        super.visitClassContext(classContext);
    } finally {
        mapContainsKeyUsed = null;
        mapGetUsed = null;
        stack = null;
    }
}
Also used : OpcodeStack(edu.umd.cs.findbugs.OpcodeStack)

Example 85 with OpcodeStack

use of edu.umd.cs.findbugs.OpcodeStack in project fb-contrib by mebigfatguy.

the class MissingMethodsDetector method visitClassContext.

/**
 * overrides the visitor to initialize and tear down the opcode stack
 *
 * @param classContext
 *            the context object of the currently parsed class
 */
@Override
public void visitClassContext(ClassContext classContext) {
    try {
        String clsName = classContext.getJavaClass().getClassName();
        isInnerClass = clsName.indexOf(Values.INNER_CLASS_SEPARATOR) >= 0;
        clsSignature = SignatureUtils.classToSignature(clsName);
        stack = new OpcodeStack();
        localSpecialObjects = new HashMap<>();
        fieldSpecialObjects = new HashMap<>();
        super.visitClassContext(classContext);
        if (!isInnerClass && !fieldSpecialObjects.isEmpty()) {
            for (Map.Entry<String, String> entry : fieldSpecialObjects.entrySet()) {
                String fieldName = entry.getKey();
                String signature = entry.getValue();
                bugReporter.reportBug(makeFieldBugInstance().addClass(this).addField(clsName, fieldName, signature, false));
            }
        }
    } finally {
        stack = null;
        localSpecialObjects = null;
        fieldSpecialObjects = null;
    }
}
Also used : OpcodeStack(edu.umd.cs.findbugs.OpcodeStack) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

OpcodeStack (edu.umd.cs.findbugs.OpcodeStack)95 JavaClass (org.apache.bcel.classfile.JavaClass)20 BitSet (java.util.BitSet)15 BugInstance (edu.umd.cs.findbugs.BugInstance)7 HashMap (java.util.HashMap)4 Map (java.util.Map)3 Field (org.apache.bcel.classfile.Field)3 StopOpcodeParsingException (com.mebigfatguy.fbcontrib.utils.StopOpcodeParsingException)2 FieldAnnotation (edu.umd.cs.findbugs.FieldAnnotation)2 XField (edu.umd.cs.findbugs.ba.XField)2 AnnotationEntry (org.apache.bcel.classfile.AnnotationEntry)2 Method (org.apache.bcel.classfile.Method)2 ToString (com.mebigfatguy.fbcontrib.utils.ToString)1 ClassDescriptor (edu.umd.cs.findbugs.classfile.ClassDescriptor)1 ArrayList (java.util.ArrayList)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 ConstantInteger (org.apache.bcel.classfile.ConstantInteger)1