From ffc832c4246ec20b686a85f10d47b010c8ec4120 Mon Sep 17 00:00:00 2001
From: abid <chiheb.abid@gmail.com>
Date: Wed, 27 Jan 2021 17:18:07 +0100
Subject: [PATCH] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?=
 =?UTF-8?q?=20CMakeLists.txt=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20?=
 =?UTF-8?q?=20=20src/HybridKripkeState.h=20=09modifi=C3=A9=C2=A0:=20=20=20?=
 =?UTF-8?q?=20=20=20=20=20=20src/ModelCheckThReq.cpp=20=09modifi=C3=A9?=
 =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20src/SogKripkeIteratorTh.cpp?=
 =?UTF-8?q?=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20src/main.cp?=
 =?UTF-8?q?p?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CMakeLists.txt              |  2 +-
 src/HybridKripkeState.h     | 31 ++++++++++++++++---------------
 src/ModelCheckThReq.cpp     |  1 +
 src/SogKripkeIteratorTh.cpp |  9 ++++++---
 src/main.cpp                |  1 -
 5 files changed, 24 insertions(+), 20 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4e43304..5ae4704 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.8 FATAL_ERROR)
 
 # project name and language
 project(pmc-sog C CXX)
-project(pmc-sog VERSION 0.4.1)
+project(pmc-sog VERSION 0.4.2)
 
 configure_file(PMCSOGConfig.h.in src/PMCSOGConfig.h)
 
diff --git a/src/HybridKripkeState.h b/src/HybridKripkeState.h
index 14641f8..b3151a8 100644
--- a/src/HybridKripkeState.h
+++ b/src/HybridKripkeState.h
@@ -95,6 +95,21 @@ public:
     uint32_t nb_succ;
     memcpy(&nb_succ,inmsg,4);
     indice=4;
+       m_succ.reserve(nb_succ+2);
+       if (m_deadlock) {
+           succ_t el;
+           el.id[0]='d';
+           el.pcontainer=0;
+           el._virtual=true;
+           el.transition=-1;
+           m_succ.push_back(el);
+       }
+       if (m_div) {
+           succ_t el=e;
+           el._virtual=false;
+           el.transition=-1;
+           m_succ.push_back(el);
+       }
     succ_t succ_elt;
     //printf("List of successors of %.16s\n",m_id);
     for (uint32_t i=0;i<nb_succ;i++) {
@@ -108,23 +123,9 @@ public:
         indice+=2;        
         succ_elt._virtual=false;
         m_succ.push_back(succ_elt);
-       // delete succ_elt;
     }  
 
-    if (m_deadlock) {
-        succ_t el;
-        el.id[0]='d';
-        el.pcontainer=0;
-        el._virtual=true;
-        el.transition=-1;
-        m_succ.push_back(el);
-    }
-      if (m_div) {
-           succ_t el=e;
-          el._virtual=false;
-           el.transition=-1;
-           m_succ.push_back(el);
-       }
+
     }
         
         
diff --git a/src/ModelCheckThReq.cpp b/src/ModelCheckThReq.cpp
index 2e87f52..43e5358 100644
--- a/src/ModelCheckThReq.cpp
+++ b/src/ModelCheckThReq.cpp
@@ -135,6 +135,7 @@ LDDState *ModelCheckThReq::getInitialMetaState() {
     c->setDiv(Set_Div(initial_meta_state));
     c->setDeadLock(Set_Bloc(initial_meta_state));
     if (!fire.empty()) {
+
         for (auto it = fire.begin(); it != fire.end(); it++)
             m_common_stack.push(couple_th(c, *it));
         std::unique_lock<std::mutex> lk(m_mutexBuildCompleted);
diff --git a/src/SogKripkeIteratorTh.cpp b/src/SogKripkeIteratorTh.cpp
index e48c97f..54c76d1 100644
--- a/src/SogKripkeIteratorTh.cpp
+++ b/src/SogKripkeIteratorTh.cpp
@@ -6,9 +6,7 @@
 
 SogKripkeIteratorTh::SogKripkeIteratorTh ( LDDState* lddstate, bdd cnd ) :m_lddstate ( lddstate ), kripke_succ_iterator ( cnd )
 {
-    for ( int i=0; i<m_lddstate->getSuccessors()->size(); i++ ) {
-        m_lsucc.push_back ( m_lddstate->getSuccessors()->at ( i ) );
-    }
+    m_lsucc.reserve(m_lddstate->getSuccessors()->size()+ 2);
     if ( lddstate->isDeadLock() ) {
         m_lsucc.push_back ( pair<LDDState*,int> ( &m_deadlock,-1 ) );
     }
@@ -16,6 +14,11 @@ SogKripkeIteratorTh::SogKripkeIteratorTh ( LDDState* lddstate, bdd cnd ) :m_ldds
         m_lsucc.push_back ( pair<LDDState*,int> ( (LDDState*)lddstate,-1 ) );
     }
 
+    for ( int i=0; i<m_lddstate->getSuccessors()->size(); i++ ) {
+        m_lsucc.push_back ( m_lddstate->getSuccessors()->at ( i ) );
+    }
+
+
 }
 bool SogKripkeIteratorTh::first()
 {
diff --git a/src/main.cpp b/src/main.cpp
index 842624a..4aa400d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,3 @@
-// version 0.1
 #include <time.h>
 #include <chrono>
 #include <iostream>
-- 
GitLab