diff --git a/kde/frameworks/tier1/sonnet/ispellchecker.patch b/kde/frameworks/tier1/sonnet/ispellchecker.patch index ffc2033f..e87198b0 100644 --- a/kde/frameworks/tier1/sonnet/ispellchecker.patch +++ b/kde/frameworks/tier1/sonnet/ispellchecker.patch @@ -1,52 +1,46 @@ -diff --git a/src/plugins/ispellchecker/ispellcheckerclient.h b/src/plugins/ispellchecker/ispellcheckerclient.h ---- a/src/plugins/ispellchecker/ispellcheckerclient.h -+++ b/src/plugins/ispellchecker/ispellcheckerclient.h -@@ -41,7 +41,6 @@ - } - - private: -- bool m_wasCOMInitialized = false; - ISpellCheckerFactory* m_spellCheckerFactory = nullptr; - QStringList m_languages; - }; diff --git a/src/plugins/ispellchecker/ispellcheckerclient.cpp b/src/plugins/ispellchecker/ispellcheckerclient.cpp --- a/src/plugins/ispellchecker/ispellcheckerclient.cpp +++ b/src/plugins/ispellchecker/ispellcheckerclient.cpp -@@ -15,11 +15,8 @@ - { - qCDebug(SONNET_ISPELLCHECKER) << " ISpellCheckerClient::ISpellCheckerClient"; +@@ -19,7 +19,7 @@ + m_wasCOMInitialized = SUCCEEDED(CoInitializeEx(nullptr, COINIT_MULTITHREADED)); -- // init com if needed -- m_wasCOMInitialized = SUCCEEDED(CoInitializeEx(nullptr, COINIT_MULTITHREADED)); -- // get factory - if (SUCCEEDED(CoCreateInstance(__uuidof(SpellCheckerFactory), nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_spellCheckerFactory)))) { + if (SUCCEEDED(CoCreateInstance(__uuidof(SpellCheckerFactory), nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_spellCheckerFactory))) && m_spellCheckerFactory) { // if we have a factory, cache the language names IEnumString* enumLanguages = nullptr; if (SUCCEEDED(m_spellCheckerFactory->get_SupportedLanguages(&enumLanguages))) { -@@ -41,11 +38,6 @@ +@@ -41,15 +41,15 @@ ISpellCheckerClient::~ISpellCheckerClient() { - // de-init com if needed - if (m_wasCOMInitialized) { - CoUninitialize(); - } - // release factory if (m_spellCheckerFactory) { m_spellCheckerFactory->Release(); + } ++ ++ // de-init com if needed after we released the interface! ++ if (m_wasCOMInitialized) { ++ CoUninitialize(); ++ } + } + + SpellerPlugin *ISpellCheckerClient::createSpeller(const QString &language) diff --git a/src/plugins/ispellchecker/ispellcheckerdict.cpp b/src/plugins/ispellchecker/ispellcheckerdict.cpp --- a/src/plugins/ispellchecker/ispellcheckerdict.cpp +++ b/src/plugins/ispellchecker/ispellcheckerdict.cpp @@ -13,7 +13,7 @@ : SpellerPlugin(language) { // try to init checker - if (!SUCCEEDED(spellCheckerFactory->CreateSpellChecker(language.toStdWString().c_str(), &m_spellChecker))) { + if (!spellCheckerFactory || !SUCCEEDED(spellCheckerFactory->CreateSpellChecker(language.toStdWString().c_str(), &m_spellChecker))) { m_spellChecker = nullptr; } } diff --git a/kde/frameworks/tier1/sonnet/sonnet.py b/kde/frameworks/tier1/sonnet/sonnet.py index 13117b08..8a7359d2 100644 --- a/kde/frameworks/tier1/sonnet/sonnet.py +++ b/kde/frameworks/tier1/sonnet/sonnet.py @@ -1,38 +1,38 @@ import info class subinfo(info.infoclass): def setTargets(self): self.versionInfo.setDefaultValues() self.description = "Spelling framework for Qt, plugin-based." self.patchToApply["5.66.0"] = [ ("ispellchecker.patch", 1), ] - self.patchLevel["5.66.0"] = 2 + self.patchLevel["5.66.0"] = 3 def registerOptions(self): # hunspell just when needed, on Windows(visual studio) or Mac we try with the OS specific checkers self.options.dynamic.registerOption("useHunspell", CraftCore.compiler.isLinux or CraftCore.compiler.isMinGW()) def setDependencies(self): self.buildDependencies["virtual/base"] = None self.buildDependencies["kde/frameworks/extra-cmake-modules"] = None self.runtimeDependencies["libs/qt5/qtbase"] = None if self.options.dynamic.useHunspell: self.runtimeDependencies["libs/hunspell"] = None from Package.CMakePackageBase import * class Package(CMakePackageBase): def __init__(self): CMakePackageBase.__init__(self) # always use just hunspell, if at all! self.subinfo.options.configure.args += " -DCMAKE_DISABLE_FIND_PACKAGE_ASPELL=ON" if not self.subinfo.options.dynamic.useHunspell: self.subinfo.options.configure.args += " -DCMAKE_DISABLE_FIND_PACKAGE_HUNSPELL=ON"