From 5a0f686e63a9bca28b7f244003fd9d4d4d902913 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Fri, 25 Mar 2011 23:44:14 +0000 Subject: [PATCH] bug fixes --- Robust/src/IR/Flat/RuntimeConflictResolver.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Robust/src/IR/Flat/RuntimeConflictResolver.java b/Robust/src/IR/Flat/RuntimeConflictResolver.java index 24529164..23234aba 100644 --- a/Robust/src/IR/Flat/RuntimeConflictResolver.java +++ b/Robust/src/IR/Flat/RuntimeConflictResolver.java @@ -237,7 +237,7 @@ public class RuntimeConflictResolver { } else { cFile.println(" if("+prefix+"->"+allocSite+"=="+a.getUniqueAllocSiteID()+") {"); } - addChecker(a, fn, tmp, state, et, prefix, 0, weakID); + addChecker(a, fn, tmp, state, et, prefix, depth, weakID); if (needswitch) { cFile.println(" }"); cFile.println(" break;"); @@ -259,16 +259,21 @@ public class RuntimeConflictResolver { String childPtr = "((struct ___Object___ **)(((char *) &(((struct ArrayObject *)"+ prefix+")->___length___))+sizeof(int)))[i]"; String currPtr = "arrayElement" + pdepth; - cFile.println(" int i;"); - cFile.println(" struct ___Object___ * "+currPtr+";"); - cFile.println(" for(i = 0; i<((struct ArrayObject *) " + prefix + " )->___length___; i++ ) {"); + boolean first=true; for(Effect e: et.getEffects(a)) { if (!state.transitionsTo(e).isEmpty()) { + if (first) { + cFile.println(" int i;"); + cFile.println(" struct ___Object___ * "+currPtr+";"); + cFile.println(" for(i = 0; i<((struct ArrayObject *) " + prefix + " )->___length___; i++ ) {"); + first=false; + } printRefSwitch(fn, tmp, pdepth, childPtr, currPtr, state.transitionsTo(e), weakID); } } - cFile.println("}"); + if (!first) + cFile.println("}"); } else { //All other cases String currPtr = "myPtr" + pdepth; -- 2.34.1