xbt_propositional_symbol_t ps = NULL;
xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
f = (int_f_void_t)ps->function;
- res = (*f)();
+ res = f();
xbt_dynar_push_as(new_pair->prop_ato, int, res);
}
xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
f = (int_f_void_t)ps->function;
- res = (*f)();
+ res = f();
xbt_dynar_push_as(pair->prop_ato, int, res);
}
xbt_propositional_symbol_t ps = NULL;
xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, ps){
f = (int_f_void_t)ps->function;
- res = (*f)();
+ res = f();
xbt_dynar_push_as(new_pair->prop_ato, int, res);
}
xbt_dynar_foreach(_mc_property_automaton->propositional_symbols, cursor, p){
if(strcmp(p->pred, l->u.predicat) == 0){
f = (int_f_void_t)p->function;
- return (*f)();
+ return f();
}
}
return -1;
void pair_visited_free(mc_pair_visited_t pair){
if(pair){
- pair->automaton_state = NULL;
xbt_dynar_free(&(pair->prop_ato));
MC_free_snapshot(pair->system_state);
xbt_free(pair);
void pair_reached_free(mc_pair_reached_t pair){
if(pair){
- pair->automaton_state = NULL;
xbt_dynar_free(&(pair->prop_ato));
MC_free_snapshot(pair->system_state);
xbt_free(pair);
/* Debug information */
- req_str = MC_request_to_string(req, value);
- XBT_DEBUG("Execute: %s", req_str);
- xbt_free(req_str);
+ if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){
+ req_str = MC_request_to_string(req, value);
+ XBT_DEBUG("Execute: %s", req_str);
+ xbt_free(req_str);
+ }
MC_state_set_executed_request(current_pair->graph_state, req, value);
}else{
- XBT_INFO("Next pair (depth = %d) -> Acceptance pair (%s)", xbt_fifo_size(mc_stack_liveness) + 1, pair_succ->automaton_state->id);
+ if(visited(pair_succ->automaton_state)){
+
+ XBT_DEBUG("Next pair already visited !");
+ break;
+
+ }else{
+
+ XBT_INFO("Next pair (depth = %d) -> Acceptance pair (%s)", xbt_fifo_size(mc_stack_liveness) + 1, pair_succ->automaton_state->id);
- XBT_INFO("Reached pairs : %lu", xbt_dynar_length(reached_pairs));
+ XBT_INFO("Reached pairs : %lu", xbt_dynar_length(reached_pairs));
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness, pair_succ);
- MC_UNSET_RAW_MEM;
+ MC_SET_RAW_MEM;
+ xbt_fifo_unshift(mc_stack_liveness, pair_succ);
+ MC_UNSET_RAW_MEM;
- MC_ddfs(search_cycle);
+ MC_ddfs(search_cycle);
+
+ }
}
}else{
+
+ if(visited(pair_succ->automaton_state)){
+
+ XBT_DEBUG("Next pair already visited !");
+ break;
+
+ }else{
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness, pair_succ);
- MC_UNSET_RAW_MEM;
+ MC_SET_RAW_MEM;
+ xbt_fifo_unshift(mc_stack_liveness, pair_succ);
+ MC_UNSET_RAW_MEM;
- MC_ddfs(search_cycle);
+ MC_ddfs(search_cycle);
+
+ }
}
}else{
- if(((pair_succ->automaton_state->type == 1) || (pair_succ->automaton_state->type == 2))){
+ if(visited(pair_succ->automaton_state)){
+
+ XBT_DEBUG("Next pair already visited !");
+ break;
+
+ }else{
- set_pair_reached(pair_succ->automaton_state);
+ if(((pair_succ->automaton_state->type == 1) || (pair_succ->automaton_state->type == 2))){
+
+ set_pair_reached(pair_succ->automaton_state);
- search_cycle = 1;
+ search_cycle = 1;
- XBT_INFO("Reached pairs : %lu", xbt_dynar_length(reached_pairs));
+ XBT_INFO("Reached pairs : %lu", xbt_dynar_length(reached_pairs));
- }
+ }
- MC_SET_RAW_MEM;
- xbt_fifo_unshift(mc_stack_liveness, pair_succ);
- MC_UNSET_RAW_MEM;
+ MC_SET_RAW_MEM;
+ xbt_fifo_unshift(mc_stack_liveness, pair_succ);
+ MC_UNSET_RAW_MEM;
- MC_ddfs(search_cycle);
+ MC_ddfs(search_cycle);
+
+ }
}