src/share/classes/java/lang/invoke/MethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7088481 Cdiff src/share/classes/java/lang/invoke/MethodHandle.java

src/share/classes/java/lang/invoke/MethodHandle.java

Print this page

        

*** 388,425 **** * @see MethodType * @see MethodHandles * @author John Rose, JSR 292 EG */ public abstract class MethodHandle { - // { JVM internals: - - private byte vmentry; // adapter stub or method entry point - //private int vmslots; // optionally, hoist type.form.vmslots - /*non-public*/ Object vmtarget; // VM-specific, class-specific target value - - // TO DO: vmtarget should be invisible to Java, since the JVM puts internal - // managed pointers into it. Making it visible exposes it to debuggers, - // which can cause errors when they treat the pointer as an Object. - - // These two dummy fields are present to force 'I' and 'J' signatures - // into this class's constant pool, so they can be transferred - // to vmentry when this class is loaded. - static final int INT_FIELD = 0; - static final long LONG_FIELD = 0; - - // vmentry (a void* field) is used *only* by the JVM. - // The JVM adjusts its type to int or long depending on system wordsize. - // Since it is statically typed as neither int nor long, it is impossible - // to use this field from Java bytecode. (Please don't try to, either.) - - // The vmentry is an assembly-language stub which is jumped to - // immediately after the method type is verified. - // For a direct MH, this stub loads the vmtarget's entry point - // and jumps to it. - - // } End of JVM internals. - static { MethodHandleImpl.initStatics(); } // interface MethodHandle<R throws X extends Exception,A...> // { MethodType<R throws X,A...> type(); public R invokeExact(A...) throws X; } --- 388,397 ----
src/share/classes/java/lang/invoke/MethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File