Backported fix for Projucer crash when saving global search-path
authorIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Fri, 26 Oct 2018 20:13:18 +0000 (22:13 +0200)
committerIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Fri, 26 Oct 2018 20:13:18 +0000 (22:13 +0200)
debian/patches/0010-Backported-fix-for-crash-when-saving-global-search-p.patch [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/0010-Backported-fix-for-crash-when-saving-global-search-p.patch b/debian/patches/0010-Backported-fix-for-crash-when-saving-global-search-p.patch
new file mode 100644 (file)
index 0000000..9105ecb
--- /dev/null
@@ -0,0 +1,53 @@
+From: =?utf-8?q?IOhannes_m_zm=C3=B6lnig?= <zmoelnig@umlautS.umlaeute.mur.at>
+Date: Fri, 26 Oct 2018 22:12:13 +0200
+Subject: Backported fix for crash when saving global-search-path from cmdline
+
+---
+ extras/Projucer/Source/Application/jucer_CommandLine.cpp | 8 +++++---
+ extras/Projucer/Source/Settings/jucer_StoredSettings.cpp | 3 +++
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/extras/Projucer/Source/Application/jucer_CommandLine.cpp b/extras/Projucer/Source/Application/jucer_CommandLine.cpp
+index 4dfe6cf..48c7631 100644
+--- a/extras/Projucer/Source/Application/jucer_CommandLine.cpp
++++ b/extras/Projucer/Source/Application/jucer_CommandLine.cpp
+@@ -733,6 +733,8 @@ namespace
\r
+         auto settingsFile = userAppData.getChildFile ("Projucer").getChildFile ("Projucer.settings");\r
+         std::unique_ptr<XmlElement> xml (XmlDocument::parse (settingsFile));\r
++        if (xml == nullptr)\r
++            ConsoleApplication::fail ("Settings file not valid!");\r
+         auto settingsTree = ValueTree::fromXml (*xml);\r
\r
+         if (! settingsTree.isValid())\r
+@@ -742,13 +744,13 @@ namespace
+         if (isThisOS (args[1]))\r
+         {\r
+             childToSet = settingsTree.getChildWithProperty (Ids::name, "PROJECT_DEFAULT_SETTINGS")\r
+-                                     .getChildWithName ("PROJECT_DEFAULT_SETTINGS");\r
++                                     .getOrCreateChildWithName ("PROJECT_DEFAULT_SETTINGS", nullptr);\r
+         }\r
+         else\r
+         {\r
+             childToSet = settingsTree.getChildWithProperty (Ids::name, "FALLBACK_PATHS")\r
+-                                     .getChildWithName ("FALLBACK_PATHS")\r
+-                                     .getChildWithName (args[1] + String ("Fallback"));\r
++                                     .getOrCreateChildWithName ("FALLBACK_PATHS", nullptr)\r
++                                     .getOrCreateChildWithName (args[1].text + "Fallback", nullptr);\r
+         }\r
\r
+         if (! childToSet.isValid())\r
+diff --git a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp
+index 5138b18..6d8b25a 100644
+--- a/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp
++++ b/extras/Projucer/Source/Settings/jucer_StoredSettings.cpp
+@@ -47,6 +47,9 @@ StoredSettings::StoredSettings()
+ {\r
+     updateOldProjectSettingsFiles();\r
+     reload();\r
++    changed (true);\r
++    flush();\r
++\r
+     checkJUCEPaths();\r
\r
+     projectDefaults.addListener (this);\r
index 7e16e0959b66cf96584bad57bdcd2567dfeebd3f..941520308de75b00411ffe055c63563169307e99 100644 (file)
@@ -7,3 +7,4 @@ debian_no-usagedata.patch
 debian_system_modules.patch
 debian_python3.patch
 debian_unittests_globalpaths.patch
+0010-Backported-fix-for-crash-when-saving-global-search-p.patch