From d4ad457af1d24620330fb290474b3dfbcc42fefc Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 8 Apr 2023 21:07:57 +0200 Subject: [PATCH] fix: Crash when closing provider that was used in view provider --- .../include/content/providers/view_provider.hpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/builtin/include/content/providers/view_provider.hpp b/plugins/builtin/include/content/providers/view_provider.hpp index ebbc9d533..4c1dd640d 100644 --- a/plugins/builtin/include/content/providers/view_provider.hpp +++ b/plugins/builtin/include/content/providers/view_provider.hpp @@ -3,12 +3,21 @@ #include #include +#include + namespace hex::plugin::builtin { class ViewProvider : public hex::prv::Provider { public: - explicit ViewProvider() = default; - ~ViewProvider() override = default; + explicit ViewProvider() { + EventManager::subscribe(this, [this](prv::Provider *provider, bool*) { + if (this->m_provider == provider) + ImHexApi::Provider::remove(this, true); + }); + } + ~ViewProvider() override { + EventManager::unsubscribe(this); + } [[nodiscard]] bool isAvailable() const override { if (this->m_provider == nullptr)