@ Override public void visitCode ( ) { if ( injectedTraceAnnotationVisitor == null && classAdapter . isInjectedTraceAnnotationRequired ( ) ) { AnnotationVisitor av = visitAnnotation ( INJECTED_TRACE_TYPE . getDescriptor ( ) , true ) ; av . visitEnd ( ) ; } super . visitCode ( ) ; // Label the entry to the method so we can update the local var // debug data and indicate that we're referencing them during // method entry methodEntryLabel = new Label ( ) ; visitLabel ( methodEntryLabel ) ; if ( ! waitingForSuper ) { // This must be done before all instruction callbacks, but it must // also be done before the visitLabel() callback, which might have // an associated UNINITIALIZED entry in the stack map frame that is // supposed to be pointing at a NEW opcode. processMethodEntry ( ) ; } }
Begin processing a method . This is called when the instruction stream for a method is first encountered . Since this is the first callback we use this to add the byte codes required for entry tracing .