< prev index next >

jdk/src/java.base/share/classes/java/lang/invoke/MemberName.java

Print this page

        

@@ -76,10 +76,28 @@
     private int      flags;       // modifier bits; see reflect.Modifier
     //@Injected JVM_Method* vmtarget;
     //@Injected int         vmindex;
     private Object   resolution;  // if null, this guy is resolved
 
+
+    // The JVM uses values of -2 and above for vtable indexes.
+    // Field values are simple positive offsets.
+    // Ref: src/share/vm/oops/methodOop.hpp
+    // This value is negative enough to avoid such numbers,
+    // but not too negative.
+    static final int
+        MN_IS_METHOD           = 0x00010000, // method (not constructor)
+        MN_IS_CONSTRUCTOR      = 0x00020000, // constructor
+        MN_IS_FIELD            = 0x00040000, // field
+        MN_IS_TYPE             = 0x00080000, // nested type
+        MN_CALLER_SENSITIVE    = 0x00100000, // @CallerSensitive annotation detected
+        MN_REFERENCE_KIND_SHIFT = 24, // refKind
+        MN_REFERENCE_KIND_MASK = 0x0F000000 >> MN_REFERENCE_KIND_SHIFT,
+        // The SEARCH_* bits are not for MN.flags but for the matchFlags argument of MHN.getMembers:
+        MN_SEARCH_SUPERCLASSES = 0x00100000,
+        MN_SEARCH_INTERFACES   = 0x00200000;
+
     /** Return the declaring class of this member.
      *  In the case of a bare name and type, the declaring class will be null.
      */
     public Class<?> getDeclaringClass() {
         return clazz;
< prev index next >