comparison src/share/vm/graal/graalCompiler.cpp @ 6699:d79098b9db3b

Support for interfaces in the Graal API: Make interfaces implemented by a ResolvedJavaType available; change semantics of ResolvedJavaType.getSuperclass to return null for interfaces (to conform with java.lang.Class); change semantics of ResolvedJavaType.isInstanceClass to return false for interfaces.
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 09 Nov 2012 17:15:13 -0800
parents d5f7e737827f
children e522a00b91aa
comparison
equal deleted inserted replaced
6698:f5715c5a106a 6699:d79098b9db3b
284 HotSpotResolvedJavaType::set_javaMirror(obj, klass->java_mirror()); 284 HotSpotResolvedJavaType::set_javaMirror(obj, klass->java_mirror());
285 HotSpotResolvedJavaType::set_simpleName(obj, name()); 285 HotSpotResolvedJavaType::set_simpleName(obj, name());
286 HotSpotResolvedJavaType::set_accessFlags(obj, klass->access_flags().as_int()); 286 HotSpotResolvedJavaType::set_accessFlags(obj, klass->access_flags().as_int());
287 HotSpotResolvedJavaType::set_isInterface(obj, klass->is_interface()); 287 HotSpotResolvedJavaType::set_isInterface(obj, klass->is_interface());
288 HotSpotResolvedJavaType::set_superCheckOffset(obj, klass->super_check_offset()); 288 HotSpotResolvedJavaType::set_superCheckOffset(obj, klass->super_check_offset());
289 HotSpotResolvedJavaType::set_isInstanceClass(obj, klass->oop_is_instance()); 289 HotSpotResolvedJavaType::set_isInstanceClass(obj, klass->oop_is_instance() && !klass->is_interface());
290 290
291 if (klass->oop_is_javaArray()) { 291 if (klass->oop_is_javaArray()) {
292 HotSpotResolvedJavaType::set_isArrayClass(obj, true); 292 HotSpotResolvedJavaType::set_isArrayClass(obj, true);
293 } else { 293 } else {
294 int size = instanceKlass::cast(klass())->size_helper() * HeapWordSize; 294 int size = instanceKlass::cast(klass())->size_helper() * HeapWordSize;