[Libreoffice-commits] core.git: desktop/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Tue Nov 19 06:48:12 UTC 2019


 desktop/source/app/app.cxx |   13 +++++++++++++
 1 file changed, 13 insertions(+)

New commits:
commit 2d2a76dd0ada087c168134c0a873e0f9a98eea05
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Tue Nov 19 00:54:46 2019 +0200
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Tue Nov 19 07:47:14 2019 +0100

    tdf#128523: drop cache directory when restart manager initiates restart
    
    This would allow to re-create cached elements that could be broken.
    Restarts include those after a version upgrade (with bugfixes); using
    safe mode dialog (after crashes/problems); some configuration changes.
    An example of issue fixed by this is bad cached icons from versions
    affected by tdf#119020, that still make troubles to users after a year
    after the reason of generation of bad icons had been fixed [1, 2, 3].
    
    [1] https://ask.libreoffice.org/en/question/211759
    [2] https://ask.libreoffice.org/en/question/215263
    [3] https://ask.libreoffice.org/en/question/217831
    
    Change-Id: I2362547c25f8f265915efafa4e224435eda03e20
    Reviewed-on: https://gerrit.libreoffice.org/83138
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    Tested-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 31f7abbf9b4e..82422c835210 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -96,6 +96,7 @@
 #include <unotools/configmgr.hxx>
 #include <unotools/moduleoptions.hxx>
 #include <unotools/localfilehelper.hxx>
+#include <unotools/ucbhelper.hxx>
 #include <officecfg/Office/Common.hxx>
 #include <officecfg/Office/Recovery.hxx>
 #include <officecfg/Office/Update.hxx>
@@ -327,6 +328,15 @@ void DoRestartActionsIfNecessary(bool quickstart) {
     }
 }
 
+void RemoveIconCacheDirectory()
+{
+    // See getIconCacheUrl in vcl/source/image/ImplImageTree.cxx
+    OUString sUrl = "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER
+        "/" SAL_CONFIGFILE("bootstrap") ":UserInstallation}/cache";
+    rtl::Bootstrap::expandMacros(sUrl);
+    utl::UCBContentHelper::Kill(sUrl);
+}
+
 }
 
 namespace {
@@ -1678,6 +1688,9 @@ int Desktop::doShutdown()
 
     if (pExecGlobals->bRestartRequested)
     {
+        // tdf#128523
+        RemoveIconCacheDirectory();
+
         // a restart is already requested, usually due to a configuration change
         // that needs a restart to get active. If this is the case, do not try
         // to use SecureUserConfig to safe this still untested new configuration


More information about the Libreoffice-commits mailing list