77 static inline ConstantPool* asConstantPool(oop jvmci_constant_pool) {
78 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool);
79 }
80
81 static inline Klass* asKlass(jobject jvmci_type) {
82 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
83 }
84
85 static inline Klass* asKlass(Handle jvmci_type) {
86 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
87 }
88
89 static inline Klass* asKlass(oop jvmci_type) {
90 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
91 }
92
93 static inline MethodData* asMethodData(jlong metaspaceMethodData) {
94 return (MethodData*) (address) metaspaceMethodData;
95 }
96
97 static oop get_jvmci_method(methodHandle method, TRAPS);
98
99 static oop get_jvmci_type(KlassHandle klass, TRAPS);
100
101 static void invalidate_installed_code(Handle installedCode, TRAPS);
102 };
103
104 class JavaArgumentUnboxer : public SignatureIterator {
105 protected:
106 JavaCallArguments* _jca;
107 arrayOop _args;
108 int _index;
109
110 oop next_arg(BasicType expectedType) {
111 assert(_index < _args->length(), "out of bounds");
112 oop arg=((objArrayOop) (_args))->obj_at(_index++);
113 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
114 return arg;
115 }
116
117 public:
|
77 static inline ConstantPool* asConstantPool(oop jvmci_constant_pool) {
78 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool);
79 }
80
81 static inline Klass* asKlass(jobject jvmci_type) {
82 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
83 }
84
85 static inline Klass* asKlass(Handle jvmci_type) {
86 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
87 }
88
89 static inline Klass* asKlass(oop jvmci_type) {
90 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type));
91 }
92
93 static inline MethodData* asMethodData(jlong metaspaceMethodData) {
94 return (MethodData*) (address) metaspaceMethodData;
95 }
96
97 static oop get_jvmci_method(const methodHandle& method, TRAPS);
98
99 static oop get_jvmci_type(KlassHandle klass, TRAPS);
100
101 static void invalidate_installed_code(Handle installedCode, TRAPS);
102 };
103
104 class JavaArgumentUnboxer : public SignatureIterator {
105 protected:
106 JavaCallArguments* _jca;
107 arrayOop _args;
108 int _index;
109
110 oop next_arg(BasicType expectedType) {
111 assert(_index < _args->length(), "out of bounds");
112 oop arg=((objArrayOop) (_args))->obj_at(_index++);
113 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch");
114 return arg;
115 }
116
117 public:
|