comparison truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/LayoutImpl.java @ 22198:0e5aa5fd5060

fix implicit int-to-long cast issue
author Andreas Woess <andreas.woess@oracle.com>
date Tue, 22 Sep 2015 16:46:09 +0200
parents dc83cc1f94f2
children 47172a9b40ac
comparison
equal deleted inserted replaced
22197:c8f4168061ea 22198:0e5aa5fd5060
133 Location newLocation; 133 Location newLocation;
134 if (oldLocation instanceof IntLocation && value instanceof Integer) { 134 if (oldLocation instanceof IntLocation && value instanceof Integer) {
135 newLocation = oldLocation; 135 newLocation = oldLocation;
136 } else if (oldLocation instanceof DoubleLocation && (value instanceof Double || this.isAllowedIntToDouble() && value instanceof Integer)) { 136 } else if (oldLocation instanceof DoubleLocation && (value instanceof Double || this.isAllowedIntToDouble() && value instanceof Integer)) {
137 newLocation = oldLocation; 137 newLocation = oldLocation;
138 } else if (oldLocation instanceof LongLocation && (value instanceof Long || this.isAllowedIntToLong() && value instanceof Long)) { 138 } else if (oldLocation instanceof LongLocation && (value instanceof Long || this.isAllowedIntToLong() && value instanceof Integer)) {
139 newLocation = oldLocation; 139 newLocation = oldLocation;
140 } else if (oldLocation instanceof DeclaredLocation) { 140 } else if (oldLocation instanceof DeclaredLocation) {
141 return oldShape.allocator().locationForValue(value, EnumSet.of(LocationModifier.Final, LocationModifier.NonNull)); 141 return oldShape.allocator().locationForValue(value, EnumSet.of(LocationModifier.Final, LocationModifier.NonNull));
142 } else if (oldLocation instanceof ConstantLocation) { 142 } else if (oldLocation instanceof ConstantLocation) {
143 return LocationImpl.valueEquals(oldLocation.get(null, false), value) ? oldLocation : new Locations.ConstantLocation(value); 143 return LocationImpl.valueEquals(oldLocation.get(null, false), value) ? oldLocation : new Locations.ConstantLocation(value);