23 package jdk.vm.ci.hotspot; 24 25 import jdk.vm.ci.meta.ResolvedJavaField; 26 27 /** 28 * Represents a field in a HotSpot type. 29 */ 30 public interface HotSpotResolvedJavaField extends ResolvedJavaField { 31 32 /** 33 * Determines if a given object contains this field. 34 * 35 * @return true iff this is a non-static field and its declaring class is assignable from 36 * {@code object}'s class 37 */ 38 boolean isInObject(Object object); 39 40 int offset(); 41 42 /** 43 * Checks if this field has the {@link Stable} annotation. 44 * 45 * @return true if field has {@link Stable} annotation, false otherwise 46 */ 47 boolean isStable(); 48 49 /** 50 * If this field is stable, checks if default values (0, null, etc.) should be considered stable 51 * as well. 52 * 53 * @return true if default values should be considered stable, false otherwise 54 */ 55 boolean isDefaultStable(); 56 } | 23 package jdk.vm.ci.hotspot; 24 25 import jdk.vm.ci.meta.ResolvedJavaField; 26 27 /** 28 * Represents a field in a HotSpot type. 29 */ 30 public interface HotSpotResolvedJavaField extends ResolvedJavaField { 31 32 /** 33 * Determines if a given object contains this field. 34 * 35 * @return true iff this is a non-static field and its declaring class is assignable from 36 * {@code object}'s class 37 */ 38 boolean isInObject(Object object); 39 40 int offset(); 41 42 /** 43 * Determines if this field should be treated as a constant. 44 */ 45 boolean isStable(); 46 47 /** 48 * Determines if this field should be considered constant if it has the default value for its 49 * type (e.g, 0, null, etc.). This result of this method is undefined if this field is not 50 * {@linkplain #isStable() stable}. 51 */ 52 boolean isDefaultStable(); 53 } |