src/share/vm/classfile/javaClasses.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7071307 Cdiff src/share/vm/classfile/javaClasses.hpp
src/share/vm/classfile/javaClasses.hpp
Print this page
*** 979,988 ****
--- 979,1016 ----
static int conversion_offset_in_bytes() { return _conversion_offset; }
};
+ // A simple class that maintains an invocation count
+ class java_lang_invoke_CountingMethodHandle: public java_lang_invoke_MethodHandle {
+ friend class JavaClasses;
+
+ private:
+ static int _vmcount_offset;
+ static void compute_offsets();
+
+ public:
+ // Accessors
+ static int vmcount(oop mh);
+ static void set_vmcount(oop mh, int count);
+
+ // Testers
+ static bool is_subclass(klassOop klass) {
+ return SystemDictionary::CountingMethodHandle_klass() != NULL &&
+ Klass::cast(klass)->is_subclass_of(SystemDictionary::CountingMethodHandle_klass());
+ }
+ static bool is_instance(oop obj) {
+ return obj != NULL && is_subclass(obj->klass());
+ }
+
+ // Accessors for code generation:
+ static int vmcount_offset_in_bytes() { return _vmcount_offset; }
+ };
+
+
+
// Interface to java.lang.invoke.MemberName objects
// (These are a private interface for Java code to query the class hierarchy.)
class java_lang_invoke_MemberName: AllStatic {
friend class JavaClasses;
src/share/vm/classfile/javaClasses.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File