Group :: Ferramentas de Arquivo
RPM: deepin-file-manager
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: deepin-file-manager-5.5.1-gcc11-fix-segfault.patch
Download
Download
diff --git a/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp b/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp
index b6f62e98a..078205148 100644
--- a/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp
+++ b/src/dde-file-manager-lib/interfaces/dfmeventdispatcher.cpp
@@ -126,8 +126,14 @@ void DFMEventFuture::operator =(const DFMEventFuture &other)
}
namespace DFMEventDispatcherData {
-static QList<DFMAbstractEventHandler *> eventHandler;
-static QList<DFMAbstractEventHandler *> eventFilter;
+QList<DFMAbstractEventHandler *>& eventHandler() {
+ static QList<DFMAbstractEventHandler *> handler;
+ return handler;
+}
+QList<DFMAbstractEventHandler *>& eventFilter() {
+ static QList<DFMAbstractEventHandler *> handler;
+ return handler;
+}
Q_GLOBAL_STATIC(QThreadPool, threadPool)
}
@@ -154,7 +160,7 @@ QVariant DFMEventDispatcher::processEvent(const QSharedPointer<DFMEvent> &event,
QVariant result;
- for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventFilter) {
+ for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventFilter()) {
if (!handler)
continue;
if (handler->fmEventFilter(event, target, &result))
@@ -164,7 +170,7 @@ QVariant DFMEventDispatcher::processEvent(const QSharedPointer<DFMEvent> &event,
if (target) {
target->fmEvent(event, &result);
} else {
- for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventHandler) {
+ for (DFMAbstractEventHandler *handler : DFMEventDispatcherData::eventHandler()) {
if (handler->fmEvent(event, &result))
return result;
}
@@ -197,14 +203,14 @@ QVariant DFMEventDispatcher::processEventWithEventLoop(const QSharedPointer<DFME
void DFMEventDispatcher::installEventFilter(DFMAbstractEventHandler *handler)
{
- if (!DFMEventDispatcherData::eventFilter.contains(handler)) {
- DFMEventDispatcherData::eventFilter.append(handler);
+ if (!DFMEventDispatcherData::eventFilter().contains(handler)) {
+ DFMEventDispatcherData::eventFilter().append(handler);
}
}
void DFMEventDispatcher::removeEventFilter(DFMAbstractEventHandler *handler)
{
- DFMEventDispatcherData::eventFilter.removeOne(handler);
+ DFMEventDispatcherData::eventFilter().removeOne(handler);
}
DFMEventDispatcher::State DFMEventDispatcher::state() const
@@ -222,13 +228,13 @@ DFMEventDispatcher::DFMEventDispatcher()
void DFMEventDispatcher::installEventHandler(DFMAbstractEventHandler *handler)
{
- if (!DFMEventDispatcherData::eventHandler.contains(handler))
- DFMEventDispatcherData::eventHandler.append(handler);
+ if (!DFMEventDispatcherData::eventHandler().contains(handler))
+ DFMEventDispatcherData::eventHandler().append(handler);
}
void DFMEventDispatcher::removeEventHandler(DFMAbstractEventHandler *handler)
{
- DFMEventDispatcherData::eventHandler.removeOne(handler);
+ DFMEventDispatcherData::eventHandler().removeOne(handler);
}
DFM_END_NAMESPACE