# HG changeset patch # User Roland Schatz # Date 1462892450 -7200 # Node ID c8cdf8d814759c823daec7d3976933b9fb54e699 # Parent a920338dd4d449047668b7f92795e40a2f3ac3cd Remove LocationIdentity (JDK-8156741). diff -r a920338dd4d4 -r c8cdf8d81475 jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java Wed May 11 15:54:36 2016 +0200 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaFieldImpl.java Tue May 10 17:00:50 2016 +0200 @@ -30,7 +30,6 @@ import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.Option; import jdk.vm.ci.meta.JavaType; -import jdk.vm.ci.meta.LocationIdentity; import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ModifiersProvider; import jdk.vm.ci.meta.ResolvedJavaField; @@ -50,43 +49,6 @@ * This value contains all flags as stored in the VM including internal ones. */ private final int modifiers; - private final LocationIdentity locationIdentity = new FieldLocationIdentity(this); - - public static class FieldLocationIdentity extends LocationIdentity { - HotSpotResolvedJavaField inner; - - FieldLocationIdentity(HotSpotResolvedJavaFieldImpl inner) { - this.inner = inner; - } - - @Override - public boolean isImmutable() { - return false; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj instanceof FieldLocationIdentity) { - FieldLocationIdentity fieldLocationIdentity = (FieldLocationIdentity) obj; - return inner.equals(fieldLocationIdentity.inner); - - } - return false; - } - - @Override - public int hashCode() { - return inner.hashCode(); - } - - @Override - public String toString() { - return inner.getName(); - } - } HotSpotResolvedJavaFieldImpl(HotSpotResolvedObjectTypeImpl holder, String name, JavaType type, long offset, int modifiers) { this.holder = holder; @@ -303,8 +265,4 @@ } } } - - public LocationIdentity getLocationIdentity() { - return locationIdentity; - } } diff -r a920338dd4d4 -r c8cdf8d81475 jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LocationIdentity.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/LocationIdentity.java Wed May 11 15:54:36 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2011, 2012, 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. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package jdk.vm.ci.meta; - -import java.util.IdentityHashMap; - -// JaCoCo Exclude - -/** - * Marker interface for location identities. A different location identity of two memory accesses - * guarantees that the two accesses do not interfere. - * - * Clients of {@link LocationIdentity} must use {@link #equals(Object)}, not {@code ==}, when - * comparing two {@link LocationIdentity} values for equality. Likewise, they must not use - * {@link IdentityHashMap}s with {@link LocationIdentity} values as keys. - */ -public abstract class LocationIdentity { - - private static final class AnyLocationIdentity extends LocationIdentity { - @Override - public boolean isImmutable() { - return false; - } - - @Override - public String toString() { - return "ANY_LOCATION"; - } - } - - public static final LocationIdentity ANY_LOCATION = new AnyLocationIdentity(); - - public static LocationIdentity any() { - return ANY_LOCATION; - } - - /** - * Denotes a location is unchanging in all cases. Not that this is different than the Java - * notion of final which only requires definite assignment. - */ - public abstract boolean isImmutable(); - - public final boolean isMutable() { - return !isImmutable(); - } - - public final boolean isAny() { - return this == ANY_LOCATION; - } - - public final boolean isSingle() { - return this != ANY_LOCATION; - } - - public final boolean overlaps(LocationIdentity other) { - return isAny() || other.isAny() || this.equals(other); - } -} diff -r a920338dd4d4 -r c8cdf8d81475 jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaField.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaField.java Wed May 11 15:54:36 2016 +0200 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaField.java Tue May 10 17:00:50 2016 +0200 @@ -59,11 +59,4 @@ * this field. */ ResolvedJavaType getDeclaringClass(); - - /** - * Returns an object representing the unique location identity of this resolved Java field. - * - * @return the location identity of the field - */ - LocationIdentity getLocationIdentity(); } diff -r a920338dd4d4 -r c8cdf8d81475 jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java --- a/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java Wed May 11 15:54:36 2016 +0200 +++ b/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java Tue May 10 17:00:50 2016 +0200 @@ -44,7 +44,6 @@ import org.junit.Test; -import jdk.vm.ci.meta.LocationIdentity; import jdk.vm.ci.meta.ResolvedJavaField; import jdk.vm.ci.meta.ResolvedJavaMethod; @@ -95,14 +94,6 @@ } } - @Test - public void getLocationIdentityTest() { - for (Map.Entry e : fields.entrySet()) { - LocationIdentity identity = e.getValue().getLocationIdentity(); - assertTrue(identity != null); - } - } - private Method findTestMethod(Method apiMethod) { String testName = apiMethod.getName() + "Test"; for (Method m : getClass().getDeclaredMethods()) {