diff --git a/prism/src/explicit/IndexedSet.java b/prism/src/explicit/IndexedSet.java index 5ec13279..837e4cfa 100644 --- a/prism/src/explicit/IndexedSet.java +++ b/prism/src/explicit/IndexedSet.java @@ -48,6 +48,11 @@ public class IndexedSet indexOfLastAdd = -1; } + public void clear() + { + set.clear(); + } + public boolean add(T state) { Integer i = set.get(state); diff --git a/prism/src/pta/Modules2PTA.java b/prism/src/pta/Modules2PTA.java index dfe92482..959d6a22 100644 --- a/prism/src/pta/Modules2PTA.java +++ b/prism/src/pta/Modules2PTA.java @@ -592,6 +592,8 @@ public class Modules2PTA } // Catch a (possibly) common source of mem-out errors during explicit-state reachability catch (OutOfMemoryError e) { + states.clear(); + System.gc(); throw new PrismLangException("Out of memory after exploring " + (src + 1) + " states of module " + module.getName(), module); }