108 static inline ConstantPool* asConstantPool(Handle jvmci_constant_pool) { 109 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool); 110 } 111 112 static inline ConstantPool* asConstantPool(oop jvmci_constant_pool) { 113 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool); 114 } 115 116 static inline Klass* asKlass(jobject jvmci_type) { 117 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 118 } 119 120 static inline Klass* asKlass(Handle jvmci_type) { 121 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 122 } 123 124 static inline Klass* asKlass(oop jvmci_type) { 125 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 126 } 127 128 static inline MethodData* asMethodData(jlong metaspaceMethodData) { 129 return (MethodData*) (address) metaspaceMethodData; 130 } 131 132 static oop get_jvmci_method(const methodHandle& method, TRAPS); 133 134 static oop get_jvmci_type(KlassHandle klass, TRAPS); 135 }; 136 137 class JavaArgumentUnboxer : public SignatureIterator { 138 protected: 139 JavaCallArguments* _jca; 140 arrayOop _args; 141 int _index; 142 143 oop next_arg(BasicType expectedType) { 144 assert(_index < _args->length(), "out of bounds"); 145 oop arg=((objArrayOop) (_args))->obj_at(_index++); 146 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch"); 147 return arg; | 108 static inline ConstantPool* asConstantPool(Handle jvmci_constant_pool) { 109 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool); 110 } 111 112 static inline ConstantPool* asConstantPool(oop jvmci_constant_pool) { 113 return (ConstantPool*) (address) HotSpotConstantPool::metaspaceConstantPool(jvmci_constant_pool); 114 } 115 116 static inline Klass* asKlass(jobject jvmci_type) { 117 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 118 } 119 120 static inline Klass* asKlass(Handle jvmci_type) { 121 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 122 } 123 124 static inline Klass* asKlass(oop jvmci_type) { 125 return java_lang_Class::as_Klass(HotSpotResolvedObjectTypeImpl::javaClass(jvmci_type)); 126 } 127 128 static inline Klass* asKlass(jlong metaspaceKlass) { 129 return (Klass*) (address) metaspaceKlass; 130 } 131 132 static inline MethodData* asMethodData(jlong metaspaceMethodData) { 133 return (MethodData*) (address) metaspaceMethodData; 134 } 135 136 static oop get_jvmci_method(const methodHandle& method, TRAPS); 137 138 static oop get_jvmci_type(KlassHandle klass, TRAPS); 139 }; 140 141 class JavaArgumentUnboxer : public SignatureIterator { 142 protected: 143 JavaCallArguments* _jca; 144 arrayOop _args; 145 int _index; 146 147 oop next_arg(BasicType expectedType) { 148 assert(_index < _args->length(), "out of bounds"); 149 oop arg=((objArrayOop) (_args))->obj_at(_index++); 150 assert(expectedType == T_OBJECT || java_lang_boxing_object::is_instance(arg, expectedType), "arg type mismatch"); 151 return arg; |