From 9bb4d9b912acd8e6989532e503b16ac494cf48f1 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Tue, 28 Jul 2015 12:32:49 +0000 Subject: [PATCH] LTLModelChecker(product MDP): replace module var refAll with array copy, non-det vars with copy git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10440 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/prism/LTLModelChecker.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/prism/src/prism/LTLModelChecker.java b/prism/src/prism/LTLModelChecker.java index 9b3dc4c3..86a17c38 100644 --- a/prism/src/prism/LTLModelChecker.java +++ b/prism/src/prism/LTLModelChecker.java @@ -468,15 +468,6 @@ public class LTLModelChecker extends PrismComponent Declaration decl = new Declaration(daVar, new DeclarationInt(Expression.Int(0), Expression.Int(Math.max(da.size() - 1, 1)))); newVarList.addVar(before ? 0 : varList.getNumVars(), decl, 1, model.getConstantValues()); - // Extra references (because will get derefed when new model is done with) - for (i = 0; i < model.getNumModules(); i++) { - model.getModuleDDRowVars(i).refAll(); - model.getModuleDDColVars(i).refAll(); - } - model.getAllDDSchedVars().refAll(); - model.getAllDDSynchVars().refAll(); - model.getAllDDChoiceVars().refAll(); - model.getAllDDNondetVars().refAll(); // Build transition matrix for product newTrans = buildTransMask(da, labelDDs, allDDRowVars, allDDColVars, daDDRowVars, daDDColVars); @@ -505,11 +496,17 @@ public class LTLModelChecker extends PrismComponent // New list of all row/col vars newAllDDRowVars, newAllDDColVars, // Nondet variables (unchanged) - model.getAllDDSchedVars(), model.getAllDDSynchVars(), model.getAllDDChoiceVars(), model.getAllDDNondetVars(), + model.getAllDDSchedVars().copy(), + model.getAllDDSynchVars().copy(), + model.getAllDDChoiceVars().copy(), + model.getAllDDNondetVars().copy(), // New list of var names newDDVarNames, // Module info (unchanged) - model.getNumModules(), model.getModuleNames(), model.getModuleDDRowVars(), model.getModuleDDColVars(), + model.getNumModules(), + model.getModuleNames(), + JDDVars.copyArray(model.getModuleDDRowVars()), + JDDVars.copyArray(model.getModuleDDColVars()), // New var info model.getNumVars() + 1, newVarList, newVarDDRowVars, newVarDDColVars, // Constants (no change)