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
This visitor class does the actual checking for the instruction operand's constraints.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ConstantPoolGen
The ConstantPoolGen instance this Visitor operates on. -
Constructor Summary
ConstructorsConstructorDescriptionInstOperandConstraintVisitor
(ConstantPoolGen constantPoolGen) The only Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
constraintViolated
(Instruction i, String message) A utility method to always raise an exception.private Method
getMethod
(JavaClass jc, InvokeInstruction invoke) Looks for the method referenced by the given invoke instruction in the given class.private Method
getMethodRecursive
(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 ObjectType
private void
indexValid
(Instruction i, int idx) A utility method to raise an exception if the index is not a valid constant pool index.private int
Utility method to return the max_locals value of the method verified by the surrounding Pass3aVerifier instance.void
visitALOAD
(ALOAD o) Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
visitDLOAD
(DLOAD o) Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
visitFLOAD
(FLOAD o) Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
visitILOAD
(ILOAD o) Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
visitLLOAD
(LLOAD o) Checks if the constraints of operands of the said instruction(s) are satisfied.void
visitLoadClass
(LoadClass loadClass) Assures the generic preconditions of a LoadClass instance.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
Checks if the constraints of operands of the said instruction(s) are satisfied.void
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 Details
-
constantPoolGen
The ConstantPoolGen instance this Visitor operates on.
-
-
Constructor Details
-
InstOperandConstraintVisitor
InstOperandConstraintVisitor(ConstantPoolGen constantPoolGen) The only Constructor.
-
-
Method Details
-
constraintViolated
A utility method to always raise an exception. -
getMethod
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 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:
ClassNotFoundException
-
getObjectType
-
indexValid
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
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitALOAD
in interfaceVisitor
- Overrides:
visitALOAD
in classEmptyVisitor
-
visitANEWARRAY
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitANEWARRAY
in interfaceVisitor
- Overrides:
visitANEWARRAY
in classEmptyVisitor
-
visitASTORE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitASTORE
in interfaceVisitor
- Overrides:
visitASTORE
in classEmptyVisitor
-
visitCHECKCAST
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitCHECKCAST
in interfaceVisitor
- Overrides:
visitCHECKCAST
in classEmptyVisitor
-
visitDLOAD
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitDLOAD
in interfaceVisitor
- Overrides:
visitDLOAD
in classEmptyVisitor
-
visitDSTORE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitDSTORE
in interfaceVisitor
- Overrides:
visitDSTORE
in classEmptyVisitor
-
visitFieldInstruction
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFieldInstruction
in interfaceVisitor
- Overrides:
visitFieldInstruction
in classEmptyVisitor
-
visitFLOAD
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFLOAD
in interfaceVisitor
- Overrides:
visitFLOAD
in classEmptyVisitor
-
visitFSTORE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitFSTORE
in interfaceVisitor
- Overrides:
visitFSTORE
in classEmptyVisitor
-
visitGETSTATIC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitGETSTATIC
in interfaceVisitor
- Overrides:
visitGETSTATIC
in classEmptyVisitor
-
visitIINC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitIINC
in interfaceVisitor
- Overrides:
visitIINC
in classEmptyVisitor
-
visitILOAD
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitILOAD
in interfaceVisitor
- Overrides:
visitILOAD
in classEmptyVisitor
-
visitINSTANCEOF
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINSTANCEOF
in interfaceVisitor
- Overrides:
visitINSTANCEOF
in classEmptyVisitor
-
visitINVOKEDYNAMIC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEDYNAMIC
in interfaceVisitor
- Overrides:
visitINVOKEDYNAMIC
in classEmptyVisitor
-
visitInvokeInstruction
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitInvokeInstruction
in interfaceVisitor
- Overrides:
visitInvokeInstruction
in classEmptyVisitor
-
visitINVOKEINTERFACE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEINTERFACE
in interfaceVisitor
- Overrides:
visitINVOKEINTERFACE
in classEmptyVisitor
-
visitINVOKESPECIAL
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKESPECIAL
in interfaceVisitor
- Overrides:
visitINVOKESPECIAL
in classEmptyVisitor
-
visitINVOKESTATIC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKESTATIC
in interfaceVisitor
- Overrides:
visitINVOKESTATIC
in classEmptyVisitor
-
visitINVOKEVIRTUAL
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitINVOKEVIRTUAL
in interfaceVisitor
- Overrides:
visitINVOKEVIRTUAL
in classEmptyVisitor
-
visitISTORE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitISTORE
in interfaceVisitor
- Overrides:
visitISTORE
in classEmptyVisitor
-
visitLDC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLDC
in interfaceVisitor
- Overrides:
visitLDC
in classEmptyVisitor
-
visitLDC2_W
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLDC2_W
in interfaceVisitor
- Overrides:
visitLDC2_W
in classEmptyVisitor
-
visitLLOAD
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLLOAD
in interfaceVisitor
- Overrides:
visitLLOAD
in classEmptyVisitor
-
visitLoadClass
Assures the generic preconditions of a LoadClass instance. The referenced class is loaded and pass2-verified.- Specified by:
visitLoadClass
in interfaceVisitor
- Overrides:
visitLoadClass
in classEmptyVisitor
-
visitLOOKUPSWITCH
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLOOKUPSWITCH
in interfaceVisitor
- Overrides:
visitLOOKUPSWITCH
in classEmptyVisitor
-
visitLSTORE
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitLSTORE
in interfaceVisitor
- Overrides:
visitLSTORE
in classEmptyVisitor
-
visitMULTIANEWARRAY
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitMULTIANEWARRAY
in interfaceVisitor
- Overrides:
visitMULTIANEWARRAY
in classEmptyVisitor
-
visitNEW
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitNEW
in interfaceVisitor
- Overrides:
visitNEW
in classEmptyVisitor
-
visitNEWARRAY
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitNEWARRAY
in interfaceVisitor
- Overrides:
visitNEWARRAY
in classEmptyVisitor
-
visitPUTSTATIC
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitPUTSTATIC
in interfaceVisitor
- Overrides:
visitPUTSTATIC
in classEmptyVisitor
-
visitRET
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitRET
in interfaceVisitor
- Overrides:
visitRET
in classEmptyVisitor
-
visitTABLESWITCH
Checks if the constraints of operands of the said instruction(s) are satisfied.- Specified by:
visitTABLESWITCH
in interfaceVisitor
- Overrides:
visitTABLESWITCH
in classEmptyVisitor
-