@ Override public void visitCode ( Code obj ) { Method m = getMethod ( ) ; stack . resetForMethodEntry ( this ) ; initializedRegs . clear ( ) ; modifyRegs . clear ( ) ; Type [ ] argTypes = m . getArgumentTypes ( ) ; int arg = m . isStatic ( ) ? 0 : 1 ; for ( Type argType : argTypes ) { String argSig = argType . getSignature ( ) ; initializedRegs . set ( arg ) ; arg += SignatureUtils . getSignatureSize ( argSig ) ; } nullStoreToLocation . clear ( ) ; super . visitCode ( obj ) ; for ( Integer pc : nullStoreToLocation . values ( ) ) { bugReporter . reportBug ( new BugInstance ( this , BugType . AIOB_ARRAY_STORE_TO_NULL_REFERENCE . name ( ) , HIGH_PRIORITY ) . addClass ( this ) . addMethod ( this ) . addSourceLine ( this , pc . intValue ( ) ) ) ; } }
overrides the visitor to collect parameter registers