From c01d975387b4fc4b711acbdbdc19e3690985adec Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Mon, 25 Jun 2012 12:22:31 -0700 Subject: [PATCH] nodestack: only create may_read_from sets for read operations --- nodestack.cc | 7 +++++-- nodestack.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nodestack.cc b/nodestack.cc index d3b7c10..a39701e 100644 --- a/nodestack.cc +++ b/nodestack.cc @@ -24,10 +24,12 @@ Node::Node(ModelAction *act, Node *par, int nthreads) explored_children(num_threads), backtrack(num_threads), numBacktracks(0), - may_read_from() + may_read_from(NULL) { if (act) act->set_node(this); + if (act && act->is_read()) + may_read_from = new action_set_t(); } /** @brief Node desctructor */ @@ -119,7 +121,8 @@ bool Node::is_enabled(Thread *t) */ void Node::add_read_from(ModelAction *act) { - may_read_from.insert(act); + ASSERT(may_read_from); + may_read_from->insert(act); } void Node::explore(thread_id_t tid) diff --git a/nodestack.h b/nodestack.h index 11440e5..974f1a9 100644 --- a/nodestack.h +++ b/nodestack.h @@ -52,7 +52,7 @@ private: /** The set of ModelActions that this the action at this Node may read * from. Only meaningful if this Node represents a 'read' action. */ - action_set_t may_read_from; + action_set_t *may_read_from; }; typedef std::list > node_list_t; -- 2.34.1