Adding notes in the latest changes for the serializer bug fix.
authorrtrimana <rtrimana@uci.edu>
Tue, 7 Jul 2020 22:40:53 +0000 (15:40 -0700)
committerrtrimana <rtrimana@uci.edu>
Tue, 7 Jul 2020 22:40:53 +0000 (15:40 -0700)
src/main/gov/nasa/jpf/vm/ElementInfo.java
src/main/gov/nasa/jpf/vm/JPFOutputStream.java
src/main/gov/nasa/jpf/vm/serialize/CFSerializer.java
src/main/gov/nasa/jpf/vm/serialize/SmartThingsConfig.java

index c34e1c1..9ed932b 100644 (file)
@@ -137,6 +137,8 @@ public abstract class ElementInfo implements Cloneable {
 
   // cache for a serialized representation of the object, which can be used
   // by state-matching. Value interpretation depends on the configured Serializer
+  // TODO: Fix for Groovy's model-checking
+  // TODO: Change of sid assignment strategy since the previous one caused a bug with SmartThings object filtering
   protected long sid;
 
 
index 9b4fbbe..5b32693 100644 (file)
@@ -120,7 +120,9 @@ public class JPFOutputStream extends OutputStream {
   public void print (ElementInfo ei, FinalBitSet filterMask){
     boolean isObject = ei.isObject();
     ClassInfo ci = ei.getClassInfo();
-    
+
+    // TODO: Fix for Groovy's model-checking
+    // TODO: Change of sid assignment strategy since the previous one caused a bug with SmartThings object filtering
     int ref = (useSid) ? ((int)ei.getSid()) : ei.getObjectRef();
     ps.printf("@%x ", ref);
     
index 0f6eb0e..efaf25a 100644 (file)
@@ -55,6 +55,8 @@ public class CFSerializer extends FilteringSerializer {
   // over the serialized objects to reset their sids. This works by resetting
   // the sid to 0 upon backtrack, and counting either upwards from 1 or downwards
   // from -1, but store the absolute value in the serialization stream
+  // TODO: Fix for Groovy's model-checking
+  // TODO: Change of sid assignment strategy since the previous one caused a bug with SmartThings object filtering
   long initsidCount=0;
   long sidCount=1;
 
index 589f53e..9cdb54b 100644 (file)
@@ -156,6 +156,8 @@ public class SmartThingsConfig
   @Override
   public FramePolicy ammendFramePolicy(MethodInfo mi, FramePolicy sofar) {
     ClassInfo ci = mi.getClassInfo();
+    // TODO: Fix for Groovy's model-checking
+    // TODO: Change of sid assignment strategy since the previous one caused a bug with SmartThings object filtering
     if (ignoreClass(ci) || checkName(mi.getName())) {
       sofar.includeLocals = false;
       sofar.includeOps = false;