From 1ce8866e5b88da6cc4b7cd4d3440f7d70c7be5db Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Sun, 16 Nov 2025 17:14:20 +0800 Subject: Remove SelfResolvable. --- include/cru/base/Event.h | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'include/cru/base/Event.h') diff --git a/include/cru/base/Event.h b/include/cru/base/Event.h index 226c2ea4..276c313f 100644 --- a/include/cru/base/Event.h +++ b/include/cru/base/Event.h @@ -1,8 +1,6 @@ #pragma once #include "Base.h" -#include "SelfResolvable.h" - #include #include #include @@ -13,7 +11,7 @@ namespace cru { class EventHandlerRevoker; -class EventBase : public Object, public SelfResolvable { +class EventBase : public Object { friend EventHandlerRevoker; public: @@ -36,28 +34,23 @@ class EventHandlerRevoker { friend EventBase; private: - EventHandlerRevoker(ObjectResolver&& resolver, - EventBase::EventHandlerToken token) - : resolver_(std::move(resolver)), token_(token) {} + EventHandlerRevoker(EventBase* event, EventBase::EventHandlerToken token) + : event_(event), token_(token) {} public: /** * Revoke the registered handler. If the event has already been destroyed or * the handler is already revoked, nothing will be done. */ - void operator()() const { - if (const auto event = resolver_.Resolve()) { - event->RemoveHandler(token_); - } - } + void operator()() const { event_->RemoveHandler(token_); } private: - ObjectResolver resolver_; + EventBase* event_; EventBase::EventHandlerToken token_; }; inline EventHandlerRevoker EventBase::CreateRevoker(EventHandlerToken token) { - return EventHandlerRevoker(CreateResolver(), token); + return EventHandlerRevoker(this, token); } struct IBaseEvent : public virtual Interface { -- cgit v1.2.3