src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java

Print this page




 461         assert !isInterface();
 462 
 463         HotSpotVMConfig config = config();
 464         final int layoutHelper = layoutHelper();
 465         assert layoutHelper > config.klassLayoutHelperNeutralValue : "must be instance";
 466 
 467         // See: Klass::layout_helper_size_in_bytes
 468         int size = layoutHelper & ~config.klassLayoutHelperInstanceSlowPathBit;
 469 
 470         // See: Klass::layout_helper_needs_slow_path
 471         boolean needsSlowPath = (layoutHelper & config.klassLayoutHelperInstanceSlowPathBit) != 0;
 472 
 473         return needsSlowPath ? -size : size;
 474     }
 475 
 476     public int layoutHelper() {
 477         HotSpotVMConfig config = config();
 478         return UNSAFE.getInt(getMetaspaceKlass() + config.klassLayoutHelperOffset);
 479     }
 480 





 481     synchronized HotSpotResolvedJavaMethod createMethod(long metaspaceMethod) {
 482         HotSpotResolvedJavaMethodImpl method = null;
 483         if (methodCache == null) {
 484             methodCache = new HashMap<>(8);
 485         } else {
 486             method = methodCache.get(metaspaceMethod);
 487         }
 488         if (method == null) {
 489             method = new HotSpotResolvedJavaMethodImpl(this, metaspaceMethod);
 490             methodCache.put(metaspaceMethod, method);
 491             context.add(method);
 492         }
 493         return method;
 494     }
 495 
 496     public int getVtableLength() {
 497         HotSpotVMConfig config = config();
 498         if (isInterface() || isArray()) {
 499             /* Everything has the core vtable of java.lang.Object */
 500             return config.baseVtableLength();




 461         assert !isInterface();
 462 
 463         HotSpotVMConfig config = config();
 464         final int layoutHelper = layoutHelper();
 465         assert layoutHelper > config.klassLayoutHelperNeutralValue : "must be instance";
 466 
 467         // See: Klass::layout_helper_size_in_bytes
 468         int size = layoutHelper & ~config.klassLayoutHelperInstanceSlowPathBit;
 469 
 470         // See: Klass::layout_helper_needs_slow_path
 471         boolean needsSlowPath = (layoutHelper & config.klassLayoutHelperInstanceSlowPathBit) != 0;
 472 
 473         return needsSlowPath ? -size : size;
 474     }
 475 
 476     public int layoutHelper() {
 477         HotSpotVMConfig config = config();
 478         return UNSAFE.getInt(getMetaspaceKlass() + config.klassLayoutHelperOffset);
 479     }
 480 
 481     @Override
 482     public long getFingerprint() {
 483         return compilerToVM().getFingerprint(getMetaspaceKlass());
 484     }
 485 
 486     synchronized HotSpotResolvedJavaMethod createMethod(long metaspaceMethod) {
 487         HotSpotResolvedJavaMethodImpl method = null;
 488         if (methodCache == null) {
 489             methodCache = new HashMap<>(8);
 490         } else {
 491             method = methodCache.get(metaspaceMethod);
 492         }
 493         if (method == null) {
 494             method = new HotSpotResolvedJavaMethodImpl(this, metaspaceMethod);
 495             methodCache.put(metaspaceMethod, method);
 496             context.add(method);
 497         }
 498         return method;
 499     }
 500 
 501     public int getVtableLength() {
 502         HotSpotVMConfig config = config();
 503         if (isInterface() || isArray()) {
 504             /* Everything has the core vtable of java.lang.Object */
 505             return config.baseVtableLength();


src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File