From 7912349b5586d1a39add3c2866c7e8d1cbb7d63e Mon Sep 17 00:00:00 2001 From: ed Date: Wed, 17 Jan 2018 09:24:55 +0000 Subject: [PATCH] Projucer: Cache preprocessor defs to reduce save time --- extras/Projucer/Source/Project/jucer_Project.cpp | 9 +++------ extras/Projucer/Source/Project/jucer_Project.h | 3 ++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/extras/Projucer/Source/Project/jucer_Project.cpp b/extras/Projucer/Source/Project/jucer_Project.cpp index 988761f6c9..52c2b46f3b 100644 --- a/extras/Projucer/Source/Project/jucer_Project.cpp +++ b/extras/Projucer/Source/Project/jucer_Project.cpp @@ -456,12 +456,14 @@ Result Project::saveResourcesOnly (const File& file) //============================================================================== void Project::valueTreePropertyChanged (ValueTree& tree, const Identifier& property) { - if (tree.getParent() == tree) + if (tree.getRoot() == tree) { if (property == Ids::projectType) sendChangeMessage(); else if (property == Ids::name) setTitle (projectRoot [Ids::name]); + else if (property == Ids::defines) + parsedPreprocessorDefs = parsePreprocessorDefs (preprocessorDefsValue.get()); changed(); } @@ -853,11 +855,6 @@ String Project::getVersionAsHex() const return "0x" + String::toHexString (getVersionAsHexInteger()); } -StringPairArray Project::getPreprocessorDefs() const -{ - return parsePreprocessorDefs (projectRoot [Ids::defines]); -} - File Project::getBinaryDataCppFile (int index) const { const File cpp (getGeneratedCodeFolder().getChildFile ("BinaryData.cpp")); diff --git a/extras/Projucer/Source/Project/jucer_Project.h b/extras/Projucer/Source/Project/jucer_Project.h index 257b9d449e..80290e60f4 100644 --- a/extras/Projucer/Source/Project/jucer_Project.h +++ b/extras/Projucer/Source/Project/jucer_Project.h @@ -111,7 +111,7 @@ public: String getHeaderSearchPathsString() const { return headerSearchPathsValue.get(); } - StringPairArray getPreprocessorDefs() const; + StringPairArray getPreprocessorDefs() const { return parsedPreprocessorDefs; } int getMaxBinaryFileSize() const { return maxBinaryFileSizeValue.get(); } bool shouldIncludeBinaryInAppConfig() const { return includeBinaryDataInAppConfigValue.get(); } @@ -353,6 +353,7 @@ private: ScopedPointer enabledModulesList; bool isSaving; Time modificationTime; + StringPairArray parsedPreprocessorDefs; //============================================================================== void intialiseProjectValues();