public final class VirtualObject extends jdk.internal.jvmci.meta.AbstractValue implements jdk.internal.jvmci.meta.JavaValue
VirtualObject
is used during deoptimization to recreate the
object.Modifier and Type | Field and Description |
---|---|
private int |
id |
private jdk.internal.jvmci.meta.ResolvedJavaType |
type |
private jdk.internal.jvmci.meta.Value[] |
values |
Modifier | Constructor and Description |
---|---|
private |
VirtualObject(jdk.internal.jvmci.meta.ResolvedJavaType type,
jdk.internal.jvmci.meta.Value[] values,
int id) |
Modifier and Type | Method and Description |
---|---|
private static StringBuilder |
appendValue(StringBuilder buf,
jdk.internal.jvmci.meta.Value value,
Set<VirtualObject> visited) |
private static boolean |
checkValues(jdk.internal.jvmci.meta.ResolvedJavaType type,
jdk.internal.jvmci.meta.Value[] values) |
boolean |
equals(Object o) |
static VirtualObject |
get(jdk.internal.jvmci.meta.ResolvedJavaType type,
jdk.internal.jvmci.meta.Value[] values,
int id)
Creates a new
VirtualObject for the given type, with the given fields. |
int |
getId()
Returns the unique id that identifies the object within the debug information for one
position in the compiled code.
|
jdk.internal.jvmci.meta.ResolvedJavaType |
getType()
Returns the type of the object whose allocation was removed during compilation.
|
jdk.internal.jvmci.meta.Value[] |
getValues()
Returns an array containing all the values to be stored into the object when it is recreated.
|
int |
hashCode() |
private static boolean |
same(Object o1,
Object o2) |
void |
setValues(jdk.internal.jvmci.meta.Value[] values)
Overwrites the current set of values with a new one.
|
String |
toString() |
getKind, getKindSuffix, getLIRKind, getPlatformKind, identityEquals
private final jdk.internal.jvmci.meta.ResolvedJavaType type
private jdk.internal.jvmci.meta.Value[] values
private final int id
private VirtualObject(jdk.internal.jvmci.meta.ResolvedJavaType type, jdk.internal.jvmci.meta.Value[] values, int id)
public static VirtualObject get(jdk.internal.jvmci.meta.ResolvedJavaType type, jdk.internal.jvmci.meta.Value[] values, int id)
VirtualObject
for the given type, with the given fields. If
type
is an instance class then values
provides the values for the fields
returned by getInstanceFields(true)
. If
type
is an array then the length of the values array determines the reallocated array
length.type
- the type of the object whose allocation was removed during compilation. This can
be either an instance of an array type.values
- an array containing all the values to be stored into the object when it is
recreatedid
- a unique id that identifies the object within the debug information for one
position in the compiled code.VirtualObject
instance.private static StringBuilder appendValue(StringBuilder buf, jdk.internal.jvmci.meta.Value value, Set<VirtualObject> visited)
public jdk.internal.jvmci.meta.ResolvedJavaType getType()
public jdk.internal.jvmci.meta.Value[] getValues()
public int getId()
private static boolean checkValues(jdk.internal.jvmci.meta.ResolvedJavaType type, jdk.internal.jvmci.meta.Value[] values)
public void setValues(jdk.internal.jvmci.meta.Value[] values)
values
- an array containing all the values to be stored into the object when it is
recreated.public int hashCode()
hashCode
in class jdk.internal.jvmci.meta.AbstractValue
public boolean equals(Object o)
equals
in class jdk.internal.jvmci.meta.AbstractValue