diff --git a/src/lib/project/Project.cpp b/src/lib/project/Project.cpp index f5e130b0..0d06a26e 100644 --- a/src/lib/project/Project.cpp +++ b/src/lib/project/Project.cpp @@ -551,11 +551,15 @@ bool Project::didFileChange(const FileInfo& info) const { std::shared_ptr storedFileContent = m_storage->getFileContent(info.path); std::shared_ptr diskFileContent = TextAccess::createFromFile(diskFileInfo.path); - if (diskFileContent->getLineCount() == storedFileContent->getLineCount()) + + const std::vector& diskFileLines = diskFileContent->getAllLines(); + const std::vector& storedFileLines = storedFileContent->getAllLines(); + + if (diskFileLines.size() == storedFileLines.size()) { - for (size_t i = 0; i < diskFileContent->getLineCount(); i++) + for (size_t i = 0; i < diskFileLines.size(); i++) { - if (diskFileContent->getLine(i) != storedFileContent->getLine(i)) + if (diskFileLines[i] != storedFileLines[i]) { return true; } diff --git a/src/lib/utility/text/TextAccess.cpp b/src/lib/utility/text/TextAccess.cpp index 025178a8..3a21fbbc 100644 --- a/src/lib/utility/text/TextAccess.cpp +++ b/src/lib/utility/text/TextAccess.cpp @@ -59,7 +59,7 @@ std::vector TextAccess::getLines(const unsigned int firstLineNumber return std::vector(first, last); } -std::vector TextAccess::getAllLines() const +const std::vector& TextAccess::getAllLines() const { return m_lines; } @@ -124,7 +124,7 @@ std::vector TextAccess::splitStringByLines(const std::string& text) index = text.find('\n', prevIndex); } - if (prevIndex < text.length() - 1) + if (prevIndex < text.length()) { result.push_back(text.substr(prevIndex)); } diff --git a/src/lib/utility/text/TextAccess.h b/src/lib/utility/text/TextAccess.h index 7960d522..7dcd1b5a 100644 --- a/src/lib/utility/text/TextAccess.h +++ b/src/lib/utility/text/TextAccess.h @@ -28,7 +28,7 @@ public: * @param lastLineNumber: starts with 1 */ std::vector getLines(const unsigned int firstLineNumber, const unsigned int lastLineNumber); - std::vector getAllLines() const; + const std::vector& getAllLines() const; std::string getText() const; private: