diff --git a/Source/cmDependsJavaParserHelper.cxx b/Source/cmDependsJavaParserHelper.cxx index bd3ee4d53..238e7a149 100644 --- a/Source/cmDependsJavaParserHelper.cxx +++ b/Source/cmDependsJavaParserHelper.cxx @@ -35,7 +35,7 @@ cmDependsJavaParserHelper::~cmDependsJavaParserHelper() } void cmDependsJavaParserHelper::CurrentClass::AddFileNamesForPrinting( - std::vector* files, const char* prefix, const char* sep) + std::vector* files, const char* prefix, const char* sep) const { std::string rname = ""; if (prefix) { @@ -44,8 +44,8 @@ void cmDependsJavaParserHelper::CurrentClass::AddFileNamesForPrinting( } rname += this->Name; files->push_back(rname); - std::vector::iterator it; - for (it = this->NestedClasses->begin(); it != this->NestedClasses->end(); + std::vector::const_iterator it; + for (it = this->NestedClasses.begin(); it != this->NestedClasses.end(); ++it) { it->AddFileNamesForPrinting(files, rname.c_str(), sep); } @@ -191,25 +191,19 @@ void cmDependsJavaParserHelper::StartClass(const char* cls) void cmDependsJavaParserHelper::EndClass() { - CurrentClass* parent = 0; - CurrentClass* current = 0; - if (!this->ClassStack.empty()) { - current = &(*(this->ClassStack.end() - 1)); - if (this->ClassStack.size() > 1) { - parent = &(*(this->ClassStack.end() - 2)); - } - } - if (current == 0) { + if (this->ClassStack.empty()) { std::cerr << "Error when parsing. Current class is null" << std::endl; abort(); } - if (parent == 0) { + if (this->ClassStack.size() <= 1) { std::cerr << "Error when parsing. Parent class is null" << std::endl; abort(); } + CurrentClass& current = this->ClassStack.back(); + CurrentClass& parent = this->ClassStack[this->ClassStack.size() - 2]; this->CurrentDepth--; - parent->NestedClasses->push_back(*current); - this->ClassStack.erase(this->ClassStack.end() - 1, this->ClassStack.end()); + parent.NestedClasses.push_back(current); + this->ClassStack.pop_back(); } void cmDependsJavaParserHelper::PrintClasses() @@ -228,10 +222,10 @@ void cmDependsJavaParserHelper::PrintClasses() std::vector cmDependsJavaParserHelper::GetFilesProduced() { std::vector files; - CurrentClass* toplevel = &(*(this->ClassStack.begin())); - std::vector::iterator it; - for (it = toplevel->NestedClasses->begin(); - it != toplevel->NestedClasses->end(); ++it) { + CurrentClass const& toplevel = this->ClassStack.front(); + std::vector::const_iterator it; + for (it = toplevel.NestedClasses.begin(); it != toplevel.NestedClasses.end(); + ++it) { it->AddFileNamesForPrinting(&files, 0, "$"); } return files; @@ -309,11 +303,10 @@ int cmDependsJavaParserHelper::LexInput(char* buf, int maxlen) if (buf[0] == '\n') { this->CurrentLine++; } - return (1); - } else { - buf[0] = '\n'; - return (0); + return 1; } + buf[0] = '\n'; + return 0; } void cmDependsJavaParserHelper::Error(const char* str) { diff --git a/Source/cmDependsJavaParserHelper.h b/Source/cmDependsJavaParserHelper.h index a13d023b8..6ff024563 100644 --- a/Source/cmDependsJavaParserHelper.h +++ b/Source/cmDependsJavaParserHelper.h @@ -48,7 +48,7 @@ public: // For yacc void AddClassFound(const char* sclass); - void PrepareElement(ParserType* opt); + void PrepareElement(ParserType* me); void DeallocateParserType(char** pt); void CheckEmpty(int line, int cnt, ParserType* pt); void StartClass(const char* cls); @@ -69,20 +69,9 @@ private: { public: std::string Name; - std::vector* NestedClasses; - CurrentClass() { this->NestedClasses = new std::vector; } - ~CurrentClass() { delete this->NestedClasses; } - CurrentClass& operator=(CurrentClass const& c) - { - this->NestedClasses->clear(); - this->Name = c.Name; - std::copy(c.NestedClasses->begin(), c.NestedClasses->end(), - std::back_inserter(*this->NestedClasses)); - return *this; - } - CurrentClass(CurrentClass const& c) { (*this) = c; } + std::vector NestedClasses; void AddFileNamesForPrinting(std::vector* files, - const char* prefix, const char* sep); + const char* prefix, const char* sep) const; }; std::string CurrentPackage; std::string::size_type InputBufferPos;