if (act)
act->set_node(this);
enabled_array=(bool *)MYMALLOC(sizeof(bool)*num_threads);
- if (enabled)
+ if (enabled != NULL)
memcpy(enabled_array, enabled, sizeof(bool)*num_threads);
- else
+ else {
for(int i=0;i<num_threads;i++)
enabled_array[i]=false;
+ }
}
/** @brief Node desctructor */
/* Record action */
get_head()->explore_child(act);
- node_list.push_back(new Node(act, get_head(), model->get_num_threads()));
+ node_list.push_back(new Node(act, get_head(), model->get_num_threads(), is_enabled));
total_nodes++;
iter++;
return NULL;
int threadid=id_to_int(t->get_id());
if (threadid>=enabled_len) {
bool * new_enabled=(bool *)malloc(sizeof(bool)*(threadid+1));
- memcpy(new_enabled, is_enabled, enabled_len*sizeof(bool));
memset(&new_enabled[enabled_len], 0, (threadid+1-enabled_len)*sizeof(bool));
- free(is_enabled);
+ if (is_enabled != NULL) {
+ memcpy(new_enabled, is_enabled, enabled_len*sizeof(bool));
+ free(is_enabled);
+ }
is_enabled=new_enabled;
enabled_len=threadid+1;
}