From f0c84c72afbd21f42b8094cee6dff018caa56ddb Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Tue, 9 Feb 2010 21:11:42 +0100 Subject: [PATCH] unique names debugging (please revert when the bug is fixed) --- libs/uniquenames.h | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/libs/uniquenames.h b/libs/uniquenames.h index 868336d3..8ab72f57 100644 --- a/libs/uniquenames.h +++ b/libs/uniquenames.h @@ -39,7 +39,7 @@ public: { return m_value; } - void write(char* buffer) + void write(char* buffer) const { sprintf(buffer, "%u", m_value); } @@ -136,9 +136,11 @@ inline name_t name_read(const char* name) class PostFixes { +public: typedef std::map postfixes_t; postfixes_t m_postfixes; +private: Postfix find_first_empty() const { Postfix postfix("1"); @@ -207,15 +209,33 @@ class UniqueNames public: name_t make_unique(const name_t& name) const { + char buf[80]; + name_t r("",""); + name_write(buf, name); + globalErrorStream() << "find unique name for " << buf << "\n"; + globalErrorStream() << "> currently registered names:\n"; + for(names_t::const_iterator i = m_names.begin(); i != m_names.end(); ++i) + { + globalErrorStream() << ">> " << i->first.c_str() << ": "; + for(PostFixes::postfixes_t::const_iterator j = i->second.m_postfixes.begin(); j != i->second.m_postfixes.end(); ++j) + { + j->first.write(buf); + globalErrorStream() << " '" << buf << "'"; + } + globalErrorStream() << "\n"; + } names_t::const_iterator i = m_names.find(name.first); if(i == m_names.end()) { - return name; + r = name; } else { - return name_t(name.first, (*i).second.make_unique(name.second)); + r = name_t(name.first, (*i).second.make_unique(name.second)); } + name_write(buf, r); + globalErrorStream() << "> unique name is " << buf << "\n"; + return r; } void insert(const name_t& name) -- 2.39.2