@ Override public void visitCode ( Code obj ) { Method m = getMethod ( ) ; if ( m . isSynthetic ( ) ) { return ; } if ( isEnum && "values" . equals ( m . getName ( ) ) ) { return ; } String sig = m . getSignature ( ) ; int sigPos = sig . indexOf ( ")[" ) ; if ( sigPos < 0 ) { return ; } if ( INITIAL_VALUE . equals ( m . getName ( ) ) ) { try { if ( ( THREAD_LOCAL_CLASS == null ) || getClassContext ( ) . getJavaClass ( ) . instanceOf ( THREAD_LOCAL_CLASS ) ) { return ; } } catch ( ClassNotFoundException e ) { bugReporter . reportMissingClass ( e ) ; return ; } } stack . resetForMethodEntry ( this ) ; returnArraySig = sig . substring ( sigPos + 1 ) ; uninitializedRegs . clear ( ) ; arrayAliases . clear ( ) ; storedUVs . clear ( ) ; super . visitCode ( obj ) ; }
overrides the visitor to check to see if the method returns an array and if so resets the stack for this method .