clockvector: fixup initialization
authorBrian Norris <banorris@uci.edu>
Mon, 28 May 2012 19:12:04 +0000 (12:12 -0700)
committerBrian Norris <banorris@uci.edu>
Mon, 28 May 2012 19:53:50 +0000 (12:53 -0700)
Two related fixes:

Even if parent is NULL, pass the current ModelAction to ClockVector
constructor.

When no parent is present, do not make special case for initializing
clock[0] = 1. This is only correct for a single case (the root Action)
and is already handled in other ways.

action.cc
clockvector.cc

index 73d4c498a2c03a0a26b085fbf6a8b94a289b277a..d76796d406c4d22d3642850fd2fcfcdae881b5d0 100644 (file)
--- a/action.cc
+++ b/action.cc
@@ -88,7 +88,7 @@ void ModelAction::create_cv(ModelAction *parent)
        if (parent)
                cv = new ClockVector(parent->cv, this);
        else
-               cv = new ClockVector();
+               cv = new ClockVector(NULL, this);
 }
 
 void ModelAction::read_from(ModelAction *act)
index 367fa6e2763dd6636e78d212632f6aa954cda63c..f411f50d64bcb9ca6c1b7eefe48f871bcc1c1bff 100644 (file)
@@ -14,8 +14,6 @@ ClockVector::ClockVector(ClockVector *parent, ModelAction *act)
        memset(clock, 0, num_threads * sizeof(int));
        if (parent)
                std::memcpy(clock, parent->clock, parent->num_threads * sizeof(int));
-       else
-               clock[0] = 1;
 
        if (act)
                clock[id_to_int(act->get_tid())] = act->get_seq_number();