diff -r 4a14ff47b8e3 -r eb646dd60a11 src/mem/slicc/symbols/StateMachine.py --- a/src/mem/slicc/symbols/StateMachine.py Sat Jan 19 15:14:54 2013 -0600 +++ b/src/mem/slicc/symbols/StateMachine.py Sat Jan 19 16:19:37 2013 -0600 @@ -1370,7 +1370,9 @@ void ${ident}_ProfileDumper::registerProfiler(${ident}_Profiler* profiler) { - m_profilers.push_back(profiler); + if (profiler->getVersion() >= m_profilers.size()) + m_profilers.resize(profiler->getVersion() + 1); + m_profilers[profiler->getVersion()] = profiler; } void @@ -1437,6 +1439,7 @@ public: ${ident}_Profiler(); void setVersion(int version); + int getVersion(); void countTransition(${ident}_State state, ${ident}_Event event); void possibleTransition(${ident}_State state, ${ident}_Event event); uint64 getEventCount(${ident}_Event event); @@ -1486,6 +1489,12 @@ m_version = version; } +int +${ident}_Profiler::getVersion() +{ + return m_version; +} + void ${ident}_Profiler::clearStats() {