@ UsedByGeneratedCode public int changed ( int methodId ) { if ( liveVersion == null ) { return 0 ; } else { int retval = 0 ; // First check if a new version of the type was loaded: if ( liveVersion != null ) { if ( GlobalConfiguration . logging && log . isLoggable ( Level . FINER ) ) { log . info ( "MethodId=" + methodId + " method=" + typedescriptor . getMethod ( methodId ) ) ; } // TODO [perf] could be faster to return the executor here and if one isn't returned, do the original thing. // the reason for 3 ret vals here is due to catching methods that have been deleted early - lets let the // executor throw that exception, then this side we don't have to worry so much and instead of 2 check calls (changed then getexecutor) we can // just have one. Will increase speed and reduce generated code (speeding up loadtime!) // was the method deleted? boolean b = liveVersion . incrementalTypeDescriptor . hasBeenDeleted ( methodId ) ; if ( b ) { retval = 2 ; } else { retval = liveVersion . incrementalTypeDescriptor . mustUseExecutorForThisMethod ( methodId ) ? 1 : 0 ; } } // TODO could be extremely fine grained and consider individual method changes // return memberIntMap.get(methodId).hasChanged(); return retval ; } }
Check if the specified method is different to the original form from the type as loaded .