mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 15:07:45 +00:00
LibCore+Ladybird: Make unregistering timer infallible
Let's force calling code to provide valid timer ids. No code changes are required since, surprise, nobody used this obscure functionality.
This commit is contained in:
parent
21097d1c9e
commit
bed4af6fef
10 changed files with 17 additions and 23 deletions
|
@ -17,7 +17,7 @@ public:
|
|||
virtual NonnullOwnPtr<Core::EventLoopImplementation> make_implementation() override;
|
||||
|
||||
virtual int register_timer(Core::EventReceiver&, int interval_milliseconds, bool should_reload, Core::TimerShouldFireWhenNotVisible) override;
|
||||
virtual bool unregister_timer(int timer_id) override;
|
||||
virtual void unregister_timer(int timer_id) override;
|
||||
|
||||
virtual void register_notifier(Core::Notifier&) override;
|
||||
virtual void unregister_notifier(Core::Notifier&) override;
|
||||
|
|
|
@ -82,18 +82,15 @@ int CFEventLoopManager::register_timer(Core::EventReceiver& receiver, int interv
|
|||
return timer_id;
|
||||
}
|
||||
|
||||
bool CFEventLoopManager::unregister_timer(int timer_id)
|
||||
void CFEventLoopManager::unregister_timer(int timer_id)
|
||||
{
|
||||
auto& thread_data = ThreadData::the();
|
||||
thread_data.timer_id_allocator.deallocate(timer_id);
|
||||
|
||||
if (auto timer = thread_data.timers.take(timer_id); timer.has_value()) {
|
||||
CFRunLoopTimerInvalidate(*timer);
|
||||
CFRelease(*timer);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
auto timer = thread_data.timers.take(timer_id);
|
||||
VERIFY(timer.has_value());
|
||||
CFRunLoopTimerInvalidate(*timer);
|
||||
CFRelease(*timer);
|
||||
}
|
||||
|
||||
static void socket_notifier(CFSocketRef socket, CFSocketCallBackType notification_type, CFDataRef, void const*, void* info)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue