< prev index next >
src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java
Print this page
*** 130,143 ****
--- 130,153 ----
return UNSAFE.getLong(javaClass, config().klassOffset);
}
return UNSAFE.getInt(javaClass, config().klassOffset) & 0xFFFFFFFFL;
}
+ @Override
public long getMetaspacePointer() {
return getMetaspaceKlass();
}
+ /**
+ * The Klass* for this object is kept alive by the direct reference to {@link #javaClass} so no
+ * extra work is required.
+ */
+ @Override
+ public boolean isRegistered() {
+ return true;
+ }
+
@Override
public int getModifiers() {
if (isArray()) {
return (getElementalType().getModifiers() & (Modifier.PUBLIC | Modifier.PRIVATE | Modifier.PROTECTED)) | Modifier.FINAL | Modifier.ABSTRACT;
} else {
*** 426,436 ****
HotSpotResolvedObjectTypeImpl hotSpotCallerType = (HotSpotResolvedObjectTypeImpl) callerType;
return compilerToVM().resolveMethod(this, hotSpotMethod, hotSpotCallerType);
}
public HotSpotConstantPool getConstantPool() {
! if (constantPool == null) {
constantPool = compilerToVM().getConstantPool(this, config().instanceKlassConstantsOffset);
}
return constantPool;
}
--- 436,452 ----
HotSpotResolvedObjectTypeImpl hotSpotCallerType = (HotSpotResolvedObjectTypeImpl) callerType;
return compilerToVM().resolveMethod(this, hotSpotMethod, hotSpotCallerType);
}
public HotSpotConstantPool getConstantPool() {
! if (constantPool == null || !isArray() && UNSAFE.getAddress(getMetaspaceKlass() + config().instanceKlassConstantsOffset) != constantPool.getMetaspaceConstantPool()) {
! /*
! * If the pointer to the ConstantPool has changed since this was last read refresh the
! * HotSpotConstantPool wrapper object. This ensures that uses of the constant pool are
! * operating on the latest one and that HotSpotResolvedJavaMethodImpls will be able to
! * use the shared copy instead of creating their own instance.
! */
constantPool = compilerToVM().getConstantPool(this, config().instanceKlassConstantsOffset);
}
return constantPool;
}
< prev index next >