src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java
Index
Unified diffs
Context diffs
Sdiffs
Frames
Patch
New
Old
Previous File
Next File
open Cdiff src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java
src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 21,45 ****
* questions.
*/
package jdk.vm.ci.hotspot;
import jdk.vm.ci.meta.JavaConstant;
/**
* Represents a constant that was retrieved from a constant pool. Used to keep track of the constant
* pool slot for the constant.
*/
! public final class HotSpotConstantPoolObject extends HotSpotObjectConstantImpl {
!
! static JavaConstant forObject(HotSpotResolvedObjectType type, int cpi, Object object) {
! return new HotSpotConstantPoolObject(type, cpi, object);
! }
public static JavaConstant forObject(HotSpotResolvedObjectType type, int cpi, JavaConstant object) {
! return forObject(type, cpi, ((HotSpotObjectConstantImpl) object).object());
}
private final HotSpotResolvedObjectType type;
private final int cpi;
public HotSpotResolvedObjectType getCpType() {
return type;
--- 21,43 ----
* questions.
*/
package jdk.vm.ci.hotspot;
import jdk.vm.ci.meta.JavaConstant;
+ import jdk.vm.ci.meta.JavaKind;
/**
* Represents a constant that was retrieved from a constant pool. Used to keep track of the constant
* pool slot for the constant.
*/
! public final class HotSpotConstantPoolObject implements JavaConstant {
public static JavaConstant forObject(HotSpotResolvedObjectType type, int cpi, JavaConstant object) {
! return new HotSpotConstantPoolObject(type, cpi, object);
}
+ private final JavaConstant constant;
private final HotSpotResolvedObjectType type;
private final int cpi;
public HotSpotResolvedObjectType getCpType() {
return type;
*** 47,74 ****
public int getCpi() {
return cpi;
}
! HotSpotConstantPoolObject(HotSpotResolvedObjectType type, int cpi, Object object) {
! super(object, false);
this.type = type;
this.cpi = cpi;
}
@Override
public boolean equals(Object o) {
if (o instanceof HotSpotConstantPoolObject) {
- if (super.equals(o)) {
HotSpotConstantPoolObject other = (HotSpotConstantPoolObject) o;
! return type.equals(other.type) && cpi == other.cpi;
! }
}
return false;
}
@Override
public String toValueString() {
return getCpType().getName() + getCpi();
}
@Override
--- 45,120 ----
public int getCpi() {
return cpi;
}
! HotSpotConstantPoolObject(HotSpotResolvedObjectType type, int cpi, JavaConstant constant) {
this.type = type;
this.cpi = cpi;
+ this.constant = constant;
}
@Override
public boolean equals(Object o) {
if (o instanceof HotSpotConstantPoolObject) {
HotSpotConstantPoolObject other = (HotSpotConstantPoolObject) o;
! return type.equals(other.type) && cpi == other.cpi && constant.equals(other.constant);
}
return false;
}
@Override
+ public int hashCode() {
+ return constant.hashCode() + cpi + type.hashCode();
+ }
+
+ @Override
+ public JavaKind getJavaKind() {
+ return constant.getJavaKind();
+ }
+
+ @Override
+ public boolean isNull() {
+ return constant.isNull();
+ }
+
+ @Override
+ public boolean isDefaultForKind() {
+ return constant.isDefaultForKind();
+ }
+
+ @Override
+ public Object asBoxedPrimitive() {
+ return constant.asBoxedPrimitive();
+ }
+
+ @Override
+ public int asInt() {
+ return constant.asInt();
+ }
+
+ @Override
+ public boolean asBoolean() {
+ return constant.asBoolean();
+ }
+
+ @Override
+ public long asLong() {
+ return constant.asLong();
+ }
+
+ @Override
+ public float asFloat() {
+ return constant.asFloat();
+ }
+
+ @Override
+ public double asDouble() {
+ return 0;
+ }
+
+ @Override
public String toValueString() {
return getCpType().getName() + getCpi();
}
@Override
src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantPoolObject.java
Index
Unified diffs
Context diffs
Sdiffs
Frames
Patch
New
Old
Previous File
Next File