From: Brian Norris Date: Tue, 16 Apr 2013 02:19:16 +0000 (-0700) Subject: scanalysis: install ModelExecution object in the analysis X-Git-Tag: oopsla2013~67^2~4 X-Git-Url: http://demsky.eecs.uci.edu/git/?p=model-checker.git;a=commitdiff_plain;h=bde05423f877315edafd321fe5de7235c58ac898 scanalysis: install ModelExecution object in the analysis --- diff --git a/main.cc b/main.cc index 689fe9d..56eb311 100644 --- a/main.cc +++ b/main.cc @@ -133,9 +133,10 @@ static void parse_options(struct model_params *params, int argc, char **argv) int main_argc; char **main_argv; -void install_trace_analyses() { +static void install_trace_analyses(const ModelExecution *execution) +{ if (model->params.sc_trace_analysis) - model->add_trace_analysis(new SCAnalysis()); + model->add_trace_analysis(new SCAnalysis(execution)); } /** The model_main function contains the main model checking loop. */ @@ -153,7 +154,7 @@ static void model_main() snapshot_stack_init(); model = new ModelChecker(params); - install_trace_analyses(); + install_trace_analyses(model->get_execution()); snapshot_record(0); model->run(); diff --git a/scanalysis.cc b/scanalysis.cc index ff7854a..7e0e845 100644 --- a/scanalysis.cc +++ b/scanalysis.cc @@ -2,8 +2,11 @@ #include "action.h" #include "threads-model.h" #include "clockvector.h" +#include "execution.h" -SCAnalysis::SCAnalysis() { +SCAnalysis::SCAnalysis(const ModelExecution *execution) : + execution(execution) +{ cvmap=new HashTable(); cycleset=new HashTable(); threadlists=new SnapVector(1); diff --git a/scanalysis.h b/scanalysis.h index 06fc2ed..7e300e0 100644 --- a/scanalysis.h +++ b/scanalysis.h @@ -5,7 +5,7 @@ class SCAnalysis : public TraceAnalysis { public: - SCAnalysis(); + SCAnalysis(const ModelExecution *execution); ~SCAnalysis(); virtual void analyze(action_list_t *); @@ -23,5 +23,6 @@ class SCAnalysis : public TraceAnalysis { HashTable * cvmap; HashTable * cycleset; SnapVector * threadlists; + const ModelExecution *execution; }; #endif