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;
+    }
 }