From ae26631a045b39aeb760ada4c1cfd98783599fda Mon Sep 17 00:00:00 2001 From: yuanxing Date: Fri, 25 Aug 2023 13:47:13 +0800 Subject: [PATCH 4/5] fix(wallpaper):don't call xmlWriter if system background xml not exists to solve segmentation fault MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当系统系统壁纸xml文件不存在时,不调用xmlWriter函数,防止段错误 --- .../wallpaper/widget/xml-management/xml-management.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/appearance/src/pages/wallpaper/widget/xml-management/xml-management.cpp b/plugins/appearance/src/pages/wallpaper/widget/xml-management/xml-management.cpp index 8d174ab..385eb9e 100644 --- a/plugins/appearance/src/pages/wallpaper/widget/xml-management/xml-management.cpp +++ b/plugins/appearance/src/pages/wallpaper/widget/xml-management/xml-management.cpp @@ -38,8 +38,8 @@ void XmlManagement::loadXmlFiles() if (!file.exists()) { KLOG_DEBUG() << "local xml file no exist"; - xmlReader(SYSTEM_WALLPAPER_FILE); - xmlWriter(); + if (xmlReader(SYSTEM_WALLPAPER_FILE)) + xmlWriter(); } xmlReader(localFile); } @@ -209,6 +209,11 @@ void XmlManagement::xmlUpdate(QList> updateList) { QString localFile = QString("%1/%2").arg(QDir::homePath()).arg(LOCAL_WALLPAPER_FILE); QFile file(localFile); + if (!file.exists()) + { + KLOG_DEBUG() << localFile << " doesn't exists!"; + return; + } if (!file.open(QFile::WriteOnly | QFile::Text)) { KLOG_DEBUG() << "open " << localFile << " failed!"; -- 2.33.0