Package org.apache.bcel.verifier.statics
Class Pass3aVerifier.InstOperandConstraintVisitor
- java.lang.Object
-
- org.apache.bcel.generic.EmptyVisitor
-
- org.apache.bcel.verifier.statics.Pass3aVerifier.InstOperandConstraintVisitor
-
- All Implemented Interfaces:
Visitor
- Enclosing class:
- Pass3aVerifier
private final class Pass3aVerifier.InstOperandConstraintVisitor extends EmptyVisitor
This visitor class does the actual checking for the instruction operand's constraints.
-
-
Field Summary
Fields Modifier and Type Field Description private ConstantPoolGenconstantPoolGenThe ConstantPoolGen instance this Visitor operates on.
-
Constructor Summary
Constructors Constructor Description InstOperandConstraintVisitor(ConstantPoolGen constantPoolGen)The only Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidconstraintViolated(Instruction i, java.lang.String message)A utility method to always raise an exception.private MethodgetMethod(JavaClass jc, InvokeInstruction invoke)Looks for the method referenced by the given invoke instruction in the given class.private MethodgetMethodRecursive(JavaClass jc, InvokeInstruction invoke)Looks for the method referenced by the given invoke instruction in the given class or its super classes and super interfaces.private ObjectTypegetObjectType(FieldInstruction o)private voidindexValid(Instruction i, int idx)A utility method to raise an exception if the index is not a valid constant pool index.private intmaxLocals()Utility method to return the max_locals value of the method verified by the surrounding Pass3aVerifier instance.voidvisitALOAD(ALOAD o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitANEWARRAY(ANEWARRAY o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitASTORE(ASTORE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitCHECKCAST(CHECKCAST o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitDLOAD(DLOAD o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitDSTORE(DSTORE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitFieldInstruction(FieldInstruction o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitFLOAD(FLOAD o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitFSTORE(FSTORE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitGETSTATIC(GETSTATIC o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitIINC(IINC o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitILOAD(ILOAD o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINSTANCEOF(INSTANCEOF o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINVOKEDYNAMIC(INVOKEDYNAMIC o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitInvokeInstruction(InvokeInstruction o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINVOKEINTERFACE(INVOKEINTERFACE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINVOKESPECIAL(INVOKESPECIAL o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINVOKESTATIC(INVOKESTATIC o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitINVOKEVIRTUAL(INVOKEVIRTUAL o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitISTORE(ISTORE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitLDC(LDC ldc)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitLDC2_W(LDC2_W o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitLLOAD(LLOAD o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitLoadClass(LoadClass loadClass)Assures the generic preconditions of a LoadClass instance.voidvisitLOOKUPSWITCH(LOOKUPSWITCH o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitLSTORE(LSTORE o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitMULTIANEWARRAY(MULTIANEWARRAY o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitNEW(NEW o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitNEWARRAY(NEWARRAY o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitPUTSTATIC(PUTSTATIC o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitRET(RET o)Checks if the constraints of operands of the said instruction(s) are satisfied.voidvisitTABLESWITCH(TABLESWITCH o)Checks if the constraints of operands of the said instruction(s) are satisfied.-
Methods inherited from class org.apache.bcel.generic.EmptyVisitor
visitAALOAD, visitAASTORE, visitACONST_NULL, visitAllocationInstruction, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, visitConstantPushInstruction, visitConversionInstruction, visitCPInstruction, visitD2F, visitD2I, visitD2L, visitDADD, visitDALOAD, visitDASTORE, visitDCMPG, visitDCMPL, visitDCONST, visitDDIV, visitDMUL, visitDNEG, visitDREM, visitDRETURN, visitDSUB, visitDUP, visitDUP_X1, visitDUP_X2, visitDUP2, visitDUP2_X1, visitDUP2_X2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldOrMethod, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSUB, visitGETFIELD, visitGOTO, visitGOTO_W, visitGotoInstruction, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIADD, visitIALOAD, visitIAND, visitIASTORE, visitICONST, visitIDIV, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFEQ, visitIFGE, visitIFGT, visitIfInstruction, visitIFLE, visitIFLT, visitIFNE, visitIFNONNULL, visitIFNULL, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISUB, visitIUSHR, visitIXOR, visitJSR, visitJSR_W, visitJsrInstruction, visitL2D, visitL2F, visitL2I, visitLADD, visitLALOAD, visitLAND, visitLASTORE, visitLCMP, visitLCONST, visitLDIV, visitLMUL, visitLNEG, visitLoadInstruction, visitLocalVariableInstruction, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSUB, visitLUSHR, visitLXOR, visitMONITORENTER, visitMONITOREXIT, visitNOP, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitPUTFIELD, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitSIPUSH, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
-
-
-
-
Field Detail
-
constantPoolGen
private final ConstantPoolGen constantPoolGen
The ConstantPoolGen instance this Visitor operates on.
-
-
Constructor Detail
-
InstOperandConstraintVisitor
InstOperandConstraintVisitor(ConstantPoolGen constantPoolGen)
The only Constructor.
-
-
Method Detail
-
constraintViolated
private void constraintViolated(Instruction i, java.lang.String message)
A utility method to always raise an exception.
-
getMethod
private Method getMethod(JavaClass jc, InvokeInstruction invoke)
Looks for the method referenced by the given invoke instruction in the given class.- Parameters:
jc- the class that defines the referenced methodinvoke- the instruction that references the method- Returns:
- the referenced method or null if not found.
-
getMethodRecursive
private Method getMethodRecursive(JavaClass jc, InvokeInstruction invoke) throws java.lang.ClassNotFoundException
Looks for the method referenced by the given invoke instruction in the given class or its super classes and super interfaces.- Parameters:
jc- the class that defines the referenced methodinvoke- the instruction that references the method- Returns:
- the referenced method or null if not found.
- Throws:
java.lang.ClassNotFoundException
-
getObjectType
private ObjectType getObjectType(FieldInstruction o)
-
indexValid
private void indexValid(Instruction i, int idx)
A utility method to raise an exception if the index is not a valid constant pool index.
-
maxLocals
private int maxLocals()
Utility method to return the max_locals value of the method verified by the surrounding Pass3aVerifier instance.
-
visitALOAD
public void visitALOAD(ALOAD o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitALOADin interfaceVisitor- Overrides:
visitALOADin classEmptyVisitor
-
visitANEWARRAY
public void visitANEWARRAY(ANEWARRAY o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitANEWARRAYin interfaceVisitor- Overrides:
visitANEWARRAYin classEmptyVisitor
-
visitASTORE
public void visitASTORE(ASTORE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitASTOREin interfaceVisitor- Overrides:
visitASTOREin classEmptyVisitor
-
visitCHECKCAST
public void visitCHECKCAST(CHECKCAST o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitCHECKCASTin interfaceVisitor- Overrides:
visitCHECKCASTin classEmptyVisitor
-
visitDLOAD
public void visitDLOAD(DLOAD o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitDLOADin interfaceVisitor- Overrides:
visitDLOADin classEmptyVisitor
-
visitDSTORE
public void visitDSTORE(DSTORE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitDSTOREin interfaceVisitor- Overrides:
visitDSTOREin classEmptyVisitor
-
visitFieldInstruction
public void visitFieldInstruction(FieldInstruction o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFieldInstructionin interfaceVisitor- Overrides:
visitFieldInstructionin classEmptyVisitor
-
visitFLOAD
public void visitFLOAD(FLOAD o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFLOADin interfaceVisitor- Overrides:
visitFLOADin classEmptyVisitor
-
visitFSTORE
public void visitFSTORE(FSTORE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFSTOREin interfaceVisitor- Overrides:
visitFSTOREin classEmptyVisitor
-
visitGETSTATIC
public void visitGETSTATIC(GETSTATIC o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitGETSTATICin interfaceVisitor- Overrides:
visitGETSTATICin classEmptyVisitor
-
visitIINC
public void visitIINC(IINC o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitIINCin interfaceVisitor- Overrides:
visitIINCin classEmptyVisitor
-
visitILOAD
public void visitILOAD(ILOAD o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitILOADin interfaceVisitor- Overrides:
visitILOADin classEmptyVisitor
-
visitINSTANCEOF
public void visitINSTANCEOF(INSTANCEOF o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINSTANCEOFin interfaceVisitor- Overrides:
visitINSTANCEOFin classEmptyVisitor
-
visitINVOKEDYNAMIC
public void visitINVOKEDYNAMIC(INVOKEDYNAMIC o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEDYNAMICin interfaceVisitor- Overrides:
visitINVOKEDYNAMICin classEmptyVisitor
-
visitInvokeInstruction
public void visitInvokeInstruction(InvokeInstruction o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitInvokeInstructionin interfaceVisitor- Overrides:
visitInvokeInstructionin classEmptyVisitor
-
visitINVOKEINTERFACE
public void visitINVOKEINTERFACE(INVOKEINTERFACE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEINTERFACEin interfaceVisitor- Overrides:
visitINVOKEINTERFACEin classEmptyVisitor
-
visitINVOKESPECIAL
public void visitINVOKESPECIAL(INVOKESPECIAL o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKESPECIALin interfaceVisitor- Overrides:
visitINVOKESPECIALin classEmptyVisitor
-
visitINVOKESTATIC
public void visitINVOKESTATIC(INVOKESTATIC o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKESTATICin interfaceVisitor- Overrides:
visitINVOKESTATICin classEmptyVisitor
-
visitINVOKEVIRTUAL
public void visitINVOKEVIRTUAL(INVOKEVIRTUAL o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEVIRTUALin interfaceVisitor- Overrides:
visitINVOKEVIRTUALin classEmptyVisitor
-
visitISTORE
public void visitISTORE(ISTORE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitISTOREin interfaceVisitor- Overrides:
visitISTOREin classEmptyVisitor
-
visitLDC
public void visitLDC(LDC ldc)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLDCin interfaceVisitor- Overrides:
visitLDCin classEmptyVisitor
-
visitLDC2_W
public void visitLDC2_W(LDC2_W o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLDC2_Win interfaceVisitor- Overrides:
visitLDC2_Win classEmptyVisitor
-
visitLLOAD
public void visitLLOAD(LLOAD o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLLOADin interfaceVisitor- Overrides:
visitLLOADin classEmptyVisitor
-
visitLoadClass
public void visitLoadClass(LoadClass loadClass)
Assures the generic preconditions of a LoadClass instance. The referenced class is loaded and pass2-verified.- Specified by:
visitLoadClassin interfaceVisitor- Overrides:
visitLoadClassin classEmptyVisitor
-
visitLOOKUPSWITCH
public void visitLOOKUPSWITCH(LOOKUPSWITCH o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLOOKUPSWITCHin interfaceVisitor- Overrides:
visitLOOKUPSWITCHin classEmptyVisitor
-
visitLSTORE
public void visitLSTORE(LSTORE o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLSTOREin interfaceVisitor- Overrides:
visitLSTOREin classEmptyVisitor
-
visitMULTIANEWARRAY
public void visitMULTIANEWARRAY(MULTIANEWARRAY o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitMULTIANEWARRAYin interfaceVisitor- Overrides:
visitMULTIANEWARRAYin classEmptyVisitor
-
visitNEW
public void visitNEW(NEW o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitNEWin interfaceVisitor- Overrides:
visitNEWin classEmptyVisitor
-
visitNEWARRAY
public void visitNEWARRAY(NEWARRAY o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitNEWARRAYin interfaceVisitor- Overrides:
visitNEWARRAYin classEmptyVisitor
-
visitPUTSTATIC
public void visitPUTSTATIC(PUTSTATIC o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitPUTSTATICin interfaceVisitor- Overrides:
visitPUTSTATICin classEmptyVisitor
-
visitRET
public void visitRET(RET o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitRETin interfaceVisitor- Overrides:
visitRETin classEmptyVisitor
-
visitTABLESWITCH
public void visitTABLESWITCH(TABLESWITCH o)
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitTABLESWITCHin interfaceVisitor- Overrides:
visitTABLESWITCHin classEmptyVisitor
-
-