From 014e43f0efa6b73118ddf65e16754d3211a7f150 Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Tue, 1 Dec 2020 18:30:25 -0500 Subject: [PATCH] Reset index counts on clearing verilated_cov (static removal) --- include/verilated_cov.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/include/verilated_cov.cpp b/include/verilated_cov.cpp index 9db5eacb7..45f111cd9 100644 --- a/include/verilated_cov.cpp +++ b/include/verilated_cov.cpp @@ -99,6 +99,7 @@ private: ValueIndexMap m_valueIndexes VL_GUARDED_BY(m_mutex); ///< Unique arbitrary value for values IndexValueMap m_indexValues VL_GUARDED_BY(m_mutex); ///< Unique arbitrary value for keys ItemList m_items VL_GUARDED_BY(m_mutex); ///< List of all items + int m_nextIndex VL_GUARDED_BY(m_mutex) = (KEY_UNDEF + 1); ///< Next insert value VerilatedCovImpItem* m_insertp VL_GUARDED_BY(m_mutex) = nullptr; ///< Item about to insert const char* m_insertFilenamep VL_GUARDED_BY(m_mutex) = nullptr; ///< Filename about to insert @@ -118,14 +119,13 @@ public: private: // PRIVATE METHODS int valueIndex(const std::string& value) VL_REQUIRES(m_mutex) { - static int nextIndex = KEY_UNDEF + 1; const auto iter = m_valueIndexes.find(value); if (iter != m_valueIndexes.end()) return iter->second; - nextIndex++; - assert(nextIndex > 0); // Didn't rollover - m_valueIndexes.insert(std::make_pair(value, nextIndex)); - m_indexValues.insert(std::make_pair(nextIndex, value)); - return nextIndex; + m_nextIndex++; + assert(m_nextIndex > 0); // Didn't rollover + m_valueIndexes.insert(std::make_pair(value, m_nextIndex)); + m_indexValues.insert(std::make_pair(m_nextIndex, value)); + return m_nextIndex; } static std::string dequote(const std::string& text) VL_PURE { // Quote any special characters @@ -235,6 +235,7 @@ private: m_items.clear(); m_indexValues.clear(); m_valueIndexes.clear(); + m_nextIndex = KEY_UNDEF + 1; } public: