comparison src/share/vm/graal/graalCompilerToVM.cpp @ 14012:1f34717ccafa

remove CompilerToVM.getInstanceFields
author twisti
date Mon, 24 Feb 2014 15:08:02 -0800
parents fe034af88233
children 361acb279104
comparison
equal deleted inserted replaced
14011:134491e79cde 14012:1f34717ccafa
350 holder = VMToCompiler::createResolvedJavaType(holder_klass->java_mirror(), CHECK_NULL); 350 holder = VMToCompiler::createResolvedJavaType(holder_klass->java_mirror(), CHECK_NULL);
351 } 351 }
352 } 352 }
353 353
354 Handle type = GraalCompiler::get_JavaTypeFromSignature(signature, cp->pool_holder(), CHECK_NULL); 354 Handle type = GraalCompiler::get_JavaTypeFromSignature(signature, cp->pool_holder(), CHECK_NULL);
355 Handle field_handle = GraalCompiler::get_JavaField(offset, flags.as_int(), name, holder, type, THREAD); 355 Handle java_name = java_lang_String::create_from_symbol(name, CHECK_NULL);
356 Handle field_handle = VMToCompiler::createJavaField(holder, java_name, type, offset, flags.as_int(), false, CHECK_NULL);
356 357
357 return JNIHandles::make_local(THREAD, field_handle()); 358 return JNIHandles::make_local(THREAD, field_handle());
358 C2V_END 359 C2V_END
359 360
360 C2V_VMENTRY(jlong, resolveMethod, (JNIEnv *, jobject, jobject resolved_type, jstring name, jstring signature)) 361 C2V_VMENTRY(jlong, resolveMethod, (JNIEnv *, jobject, jobject resolved_type, jstring name, jstring signature))
375 376
376 C2V_VMENTRY(jboolean, hasFinalizableSubclass,(JNIEnv *, jobject, jobject hotspot_klass)) 377 C2V_VMENTRY(jboolean, hasFinalizableSubclass,(JNIEnv *, jobject, jobject hotspot_klass))
377 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(hotspot_klass)); 378 Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(hotspot_klass));
378 assert(klass != NULL, "method must not be called for primitive types"); 379 assert(klass != NULL, "method must not be called for primitive types");
379 return Dependencies::find_finalizable_subclass(klass) != NULL; 380 return Dependencies::find_finalizable_subclass(klass) != NULL;
380 C2V_END
381
382 C2V_VMENTRY(jobject, getInstanceFields, (JNIEnv *, jobject, jobject klass))
383 ResourceMark rm;
384
385 instanceKlassHandle k = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(klass));
386 GrowableArray<Handle> fields(k->java_fields_count());
387
388 for (AllFieldStream fs(k()); !fs.done(); fs.next()) {
389 if (!fs.access_flags().is_static()) {
390 Handle type = GraalCompiler::get_JavaTypeFromSignature(fs.signature(), k, THREAD);
391 int flags = fs.access_flags().as_int();
392 bool internal = fs.access_flags().is_internal();
393 Handle name = java_lang_String::create_from_symbol(fs.name(), THREAD);
394 Handle field = VMToCompiler::createJavaField(JNIHandles::resolve(klass), name, type, fs.offset(), flags, internal, THREAD);
395 fields.append(field());
396 }
397 }
398 objArrayHandle field_array = oopFactory::new_objArray(SystemDictionary::HotSpotResolvedJavaField_klass(), fields.length(), CHECK_NULL);
399 for (int i = 0; i < fields.length(); ++i) {
400 field_array->obj_at_put(i, fields.at(i)());
401 }
402 return JNIHandles::make_local(THREAD, field_array());
403 C2V_END 381 C2V_END
404 382
405 C2V_VMENTRY(jlong, getClassInitializer, (JNIEnv *, jobject, jobject klass)) 383 C2V_VMENTRY(jlong, getClassInitializer, (JNIEnv *, jobject, jobject klass))
406 instanceKlassHandle k(THREAD, java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(klass))); 384 instanceKlassHandle k(THREAD, java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaClass(klass)));
407 Method* clinit = k->class_initializer(); 385 Method* clinit = k->class_initializer();
867 #define OBJECT "Ljava/lang/Object;" 845 #define OBJECT "Ljava/lang/Object;"
868 #define CLASS "Ljava/lang/Class;" 846 #define CLASS "Ljava/lang/Class;"
869 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;" 847 #define STACK_TRACE_ELEMENT "Ljava/lang/StackTraceElement;"
870 #define HS_RESOLVED_TYPE "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;" 848 #define HS_RESOLVED_TYPE "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;"
871 #define HS_RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;" 849 #define HS_RESOLVED_METHOD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod;"
872 #define HS_RESOLVED_FIELD "Lcom/oracle/graal/hotspot/meta/HotSpotResolvedJavaField;"
873 #define HS_COMPILED_CODE "Lcom/oracle/graal/hotspot/HotSpotCompiledCode;" 850 #define HS_COMPILED_CODE "Lcom/oracle/graal/hotspot/HotSpotCompiledCode;"
874 #define HS_CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;" 851 #define HS_CONFIG "Lcom/oracle/graal/hotspot/HotSpotVMConfig;"
875 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;" 852 #define HS_INSTALLED_CODE "Lcom/oracle/graal/hotspot/meta/HotSpotInstalledCode;"
876 #define METASPACE_KLASS "J" 853 #define METASPACE_KLASS "J"
877 #define METASPACE_METHOD "J" 854 #define METASPACE_METHOD "J"
896 {CC"lookupMethodInPool", CC"("METASPACE_CONSTANT_POOL"IB)"METHOD, FN_PTR(lookupMethodInPool)}, 873 {CC"lookupMethodInPool", CC"("METASPACE_CONSTANT_POOL"IB)"METHOD, FN_PTR(lookupMethodInPool)},
897 {CC"lookupTypeInPool", CC"("METASPACE_CONSTANT_POOL"I)"TYPE, FN_PTR(lookupTypeInPool)}, 874 {CC"lookupTypeInPool", CC"("METASPACE_CONSTANT_POOL"I)"TYPE, FN_PTR(lookupTypeInPool)},
898 {CC"lookupReferencedTypeInPool", CC"("METASPACE_CONSTANT_POOL"IB)V", FN_PTR(lookupReferencedTypeInPool)}, 875 {CC"lookupReferencedTypeInPool", CC"("METASPACE_CONSTANT_POOL"IB)V", FN_PTR(lookupReferencedTypeInPool)},
899 {CC"lookupFieldInPool", CC"("METASPACE_CONSTANT_POOL"IB)"FIELD, FN_PTR(lookupFieldInPool)}, 876 {CC"lookupFieldInPool", CC"("METASPACE_CONSTANT_POOL"IB)"FIELD, FN_PTR(lookupFieldInPool)},
900 {CC"resolveMethod", CC"("HS_RESOLVED_TYPE STRING STRING")"METASPACE_METHOD, FN_PTR(resolveMethod)}, 877 {CC"resolveMethod", CC"("HS_RESOLVED_TYPE STRING STRING")"METASPACE_METHOD, FN_PTR(resolveMethod)},
901 {CC"getInstanceFields", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_FIELD, FN_PTR(getInstanceFields)},
902 {CC"getClassInitializer", CC"("HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getClassInitializer)}, 878 {CC"getClassInitializer", CC"("HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getClassInitializer)},
903 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(hasFinalizableSubclass)}, 879 {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(hasFinalizableSubclass)},
904 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, 880 {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)},
905 {CC"getMetaspaceMethod", CC"("CLASS"I)"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)}, 881 {CC"getMetaspaceMethod", CC"("CLASS"I)"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)},
906 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)}, 882 {CC"initializeConfiguration", CC"("HS_CONFIG")V", FN_PTR(initializeConfiguration)},