From 927c3e204129945aae8e738d211e6c46733b9962 Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Wed, 30 Mar 2016 08:26:05 -0700 Subject: [PATCH] [qt5] remove usage of QPointer in icdata QPointer doesn't protect anything here, it didn't protect anything. It's not possible to delete FcitxQtInputContextProxy outside of input context. Fix #13 --- platforminputcontext/qfcitxplatforminputcontext.cpp | 6 ++---- platforminputcontext/qfcitxplatforminputcontext.h | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/platforminputcontext/qfcitxplatforminputcontext.cpp b/platforminputcontext/qfcitxplatforminputcontext.cpp index a1d8d37..3a12e0a 100644 --- a/platforminputcontext/qfcitxplatforminputcontext.cpp +++ b/platforminputcontext/qfcitxplatforminputcontext.cpp @@ -754,12 +754,10 @@ FcitxQtInputContextProxy* QFcitxPlatformInputContext::validICByWindow(QWindow* w if (iter == m_icMap.end()) return nullptr; auto &data = iter->second; - if (data.proxy.isNull()) { + if (!data.proxy || !data.proxy->isValid()) { return nullptr; - } else if (data.proxy->isValid()) { - return data.proxy.data(); } - return nullptr; + return data.proxy; } diff --git a/platforminputcontext/qfcitxplatforminputcontext.h b/platforminputcontext/qfcitxplatforminputcontext.h index c7a435c..d0064a7 100644 --- a/platforminputcontext/qfcitxplatforminputcontext.h +++ b/platforminputcontext/qfcitxplatforminputcontext.h @@ -109,7 +109,7 @@ enum FcitxKeyState { }; struct FcitxQtICData { - FcitxQtICData() : capacity(0), proxy(0), surroundingAnchor(-1), surroundingCursor(-1) {} + FcitxQtICData() : capacity(0), proxy(nullptr), surroundingAnchor(-1), surroundingCursor(-1) {} FcitxQtICData(const FcitxQtICData& that) = delete; ~FcitxQtICData() { if (proxy) { @@ -120,7 +120,7 @@ struct FcitxQtICData { } } QFlags capacity; - QPointer proxy; + FcitxQtInputContextProxy *proxy; QRect rect; QString surroundingText; int surroundingAnchor;