realloc doesn't guarantee zeroing...
[model-checker.git] / clockvector.cc
index 740b5cf2793de217eea47342e5a785537d016362..4dd03dc26fb7291a59ed4d1304358948bff6e062 100644 (file)
@@ -42,8 +42,12 @@ void ClockVector::merge(const ClockVector *cv)
 {
        ASSERT(cv != NULL);
 
-       if (cv->num_threads > num_threads)
+       if (cv->num_threads > num_threads) {
                clock = (modelclock_t *)snapshot_realloc(clock, cv->num_threads * sizeof(modelclock_t));
+               for (int i= num_threads; i < cv->num_threads; i++)
+                       clock[i] = 0;
+               num_threads = cv->num_threads;
+       }
 
        /* Element-wise maximum */
        for (int i = 0; i < cv->num_threads; i++)