Mercurial > hg > truffle
diff src/share/vm/graal/graalCompiler.cpp @ 6442:45f682f7fea8
Add MetaAccessProvider.getResolvedJavaField to convert from reflection field to metadata field
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Tue, 25 Sep 2012 09:23:45 -0700 |
parents | cc402f4396f4 |
children | d5f7e737827f |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp Tue Sep 25 09:22:22 2012 -0700 +++ b/src/share/vm/graal/graalCompiler.cpp Tue Sep 25 09:23:45 2012 -0700 @@ -238,12 +238,23 @@ } } +Handle GraalCompiler::get_JavaTypeFromClass(Handle javaClassHandle, TRAPS) { + if (java_lang_Class::is_primitive(javaClassHandle())) { + BasicType basicType = java_lang_Class::primitive_type(javaClassHandle()); + return VMToCompiler::createPrimitiveJavaType((int) basicType, THREAD); + } else { + KlassHandle klass = java_lang_Class::as_klassOop(javaClassHandle()); + Handle name = java_lang_String::create_from_symbol(klass->name(), CHECK_NULL); + return GraalCompiler::createHotSpotResolvedJavaType(klass, name, CHECK_NULL); + } +} + Handle GraalCompiler::get_JavaType(KlassHandle klass, TRAPS) { Handle name = VmIds::toString<Handle>(klass->name(), THREAD); return createHotSpotResolvedJavaType(klass, name, CHECK_NULL); } -Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, Bytecodes::Code byteCode, TRAPS) { +Handle GraalCompiler::get_JavaField(int offset, int flags, Symbol* field_name, Handle field_holder, Handle field_type, TRAPS) { Handle name = VmIds::toString<Handle>(field_name, CHECK_NULL); return VMToCompiler::createJavaField(field_holder, name, field_type, offset, flags, CHECK_NULL); }