Mercurial > hg > truffle
changeset 22339:559087369317
SL: work around findbugs warnings in generated code
author | Andreas Woess <andreas.woess@oracle.com> |
---|---|
date | Fri, 30 Oct 2015 20:09:46 +0100 |
parents | 15c9dda91e50 |
children | bb3c03f2442d |
files | truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java Fri Oct 30 19:11:36 2015 +0100 +++ b/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/access/SLWritePropertyCacheNode.java Fri Oct 30 20:09:46 2015 +0100 @@ -66,7 +66,7 @@ public abstract void executeObject(DynamicObject receiver, Object value); - @Specialization(guards = {"location != null", "shape.check(receiver)", "location.canSet(receiver, value)"}, assumptions = {"shape.getValidAssumption()"}, limit = "CACHE_LIMIT") + @Specialization(guards = {"location != null", "shape.check(receiver)", "canSet(location, receiver, value)"}, assumptions = {"shape.getValidAssumption()"}, limit = "CACHE_LIMIT") public void writeExistingPropertyCached(DynamicObject receiver, Object value, // @Cached("lookupLocation(receiver, value)") Location location, // @Cached("receiver.getShape()") Shape shape, // @@ -84,7 +84,7 @@ } } - @Specialization(guards = {"existing == null", "shapeBefore.check(receiver)", "shapeAfter != null", "newLocation.canSet(receiver, value)"}, assumptions = {"shapeBefore.getValidAssumption()", + @Specialization(guards = {"existing == null", "shapeBefore.check(receiver)", "nonNull(shapeAfter)", "canSet(newLocation, receiver, value)"}, assumptions = {"shapeBefore.getValidAssumption()", "shapeAfter.getValidAssumption()"}, limit = "CACHE_LIMIT") public void writeNewPropertyCached(DynamicObject receiver, Object value, // @Cached("lookupLocation(receiver, value)") @SuppressWarnings("unused") Location existing, // @@ -135,4 +135,12 @@ protected static Assumption ensureValid(DynamicObject receiver) { return receiver.updateShape() ? NeverValidAssumption.INSTANCE : AlwaysValidAssumption.INSTANCE; } + + protected static boolean canSet(Location location, DynamicObject receiver, Object value) { + return location.canSet(receiver, value); + } + + protected static boolean nonNull(Object value) { + return value != null; + } }