From 5fd4d43fb21ce93e9dadad8c3e5e746ee01dfa54 Mon Sep 17 00:00:00 2001 From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr> Date: Wed, 26 Jan 2011 16:50:58 +0000 Subject: [PATCH] AVATAR: Bug resolved on bool / int parameters in asynchronous channels --- src/avatartranslator/touppaal/AVATAR2UPPAAL.java | 16 +++++++++------- src/translator/ActivityDiagram.java | 6 ++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/avatartranslator/touppaal/AVATAR2UPPAAL.java b/src/avatartranslator/touppaal/AVATAR2UPPAAL.java index 79baf705a1..a22d0b3d07 100755 --- a/src/avatartranslator/touppaal/AVATAR2UPPAAL.java +++ b/src/avatartranslator/touppaal/AVATAR2UPPAAL.java @@ -416,22 +416,24 @@ public class AVATAR2UPPAAL { templateAsynchronous.addDeclaration("int head__" + name0 + " = 0;\n"); templateAsynchronous.addDeclaration("int tail__" + name0 + " = 0;\n"); - int cpt = 0; + int cpt_int = 0; + int cpt_bool = 0; String listName; for(AvatarAttribute aa: sig1.getListOfAttributes()) { - listName = "list__" + name0 + "_" + cpt; + listName = "list__" + name0 + "_" + (cpt_int+cpt_bool); if (aa.isInt()) { templateAsynchronous.addDeclaration("int " + listName + "[" + ar.getSizeOfFIFO() + "];\n"); - enqueue += " " + listName + "[tail__" + name0 + "] = " + ACTION_INT + cpt + ";\n"; - dequeue += " " + ACTION_INT + cpt + " = " + listName + "[head__" + name0 + "] " + ";\n"; + enqueue += " " + listName + "[tail__" + name0 + "] = " + ACTION_INT + cpt_int + ";\n"; + dequeue += " " + ACTION_INT + cpt_int + " = " + listName + "[head__" + name0 + "] " + ";\n"; + cpt_int ++; } else { templateAsynchronous.addDeclaration("bool " + listName + "[" + ar.getSizeOfFIFO() + "];\n"); - enqueue += " " + listName + "[tail__" + name0 + "] = " + ACTION_BOOL + cpt + ";\n"; - dequeue += " " + ACTION_BOOL + cpt + " = " + listName + "[head__" + name0 + "] " + ";\n"; + enqueue += " " + listName + "[tail__" + name0 + "] = " + ACTION_BOOL + cpt_bool + ";\n"; + dequeue += " " + ACTION_BOOL + cpt_bool + " = " + listName + "[head__" + name0 + "] " + ";\n"; + cpt_bool ++; } - cpt ++; } enqueue += " tail__" + name0 + " = (tail__" + name0 + "+1) %" + ar.getSizeOfFIFO() + ";\n"; enqueue += " size__" + name0 + "++;\n"; diff --git a/src/translator/ActivityDiagram.java b/src/translator/ActivityDiagram.java index 6bd4542d7b..022123a9b1 100755 --- a/src/translator/ActivityDiagram.java +++ b/src/translator/ActivityDiagram.java @@ -760,8 +760,10 @@ public class ActivityDiagram extends Vector{ ADParallel adpar1 = (ADParallel)(get(i)); g = adpar1.getSpecialGate(); - g = t.getGateByName(g.getName()); - adpar.setSpecialGate(g); + if (g != null) { + g = t.getGateByName(g.getName()); + adpar.setSpecialGate(g); + } /*for(j=0; j<adch1.getNbGuard(); j++) { adch.addGuard(adch1.getGuard(j)); -- GitLab