@ Override public void visitCode ( Code obj ) { try { ignoreRegs . clear ( ) ; Method method = getMethod ( ) ; if ( ! method . isStatic ( ) ) { ignoreRegs . set ( 0 ) ; } int [ ] parmRegs = RegisterUtils . getParameterRegisters ( method ) ; for ( int parm : parmRegs ) { ignoreRegs . set ( parm ) ; } rootScopeBlock = new ScopeBlock ( 0 , obj . getLength ( ) ) ; tryBlocks . clear ( ) ; catchHandlers . clear ( ) ; CodeException [ ] exceptions = obj . getExceptionTable ( ) ; if ( exceptions != null ) { for ( CodeException ex : exceptions ) { tryBlocks . set ( ex . getStartPC ( ) ) ; catchHandlers . set ( ex . getHandlerPC ( ) ) ; } } switchTargets . clear ( ) ; stack . resetForMethodEntry ( this ) ; dontReport = false ; sawDup = false ; sawNull = false ; super . visitCode ( obj ) ; if ( ! dontReport ) { rootScopeBlock . findBugs ( new HashSet < Integer > ( ) ) ; } } finally { rootScopeBlock = null ; } }
implements the visitor to reset the register to location map