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