projects
/
model-checker.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
87273fd
)
nodestack: only create may_read_from sets for read operations
author
Brian Norris
<banorris@uci.edu>
Mon, 25 Jun 2012 19:22:31 +0000
(12:22 -0700)
committer
Brian Norris
<banorris@uci.edu>
Mon, 25 Jun 2012 19:22:31 +0000
(12:22 -0700)
nodestack.cc
patch
|
blob
|
history
nodestack.h
patch
|
blob
|
history
diff --git
a/nodestack.cc
b/nodestack.cc
index d3b7c104316161d0268c8ae1b2db7a116fbbac74..a39701eaf871c90a7da3b41e2f296421dd4d6186 100644
(file)
--- 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),
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->set_node(this);
+ if (act && act->is_read())
+ may_read_from = new action_set_t();
}
/** @brief Node desctructor */
}
/** @brief Node desctructor */
@@
-119,7
+121,8
@@
bool Node::is_enabled(Thread *t)
*/
void Node::add_read_from(ModelAction *act)
{
*/
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)
}
void Node::explore(thread_id_t tid)
diff --git
a/nodestack.h
b/nodestack.h
index 11440e5ae5680af381842c3ef81e637dd0e16ee9..974f1a94ad10cefbf59d62b89575de5595879c84 100644
(file)
--- 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. */
/** 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<class Node *, MyAlloc< class Node * > > node_list_t;
};
typedef std::list<class Node *, MyAlloc< class Node * > > node_list_t;