From c8c1e6ae3f2491e7d0215a2fe0a4d63c1b0b4f1b Mon Sep 17 00:00:00 2001 From: Vaxry Date: Tue, 25 Jun 2024 18:09:53 +0200 Subject: [PATCH] session: fixup a few missing nullchecks --- src/backend/Session.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/backend/Session.cpp b/src/backend/Session.cpp index 6ff3b85..d3ac5dc 100644 --- a/src/backend/Session.cpp +++ b/src/backend/Session.cpp @@ -66,14 +66,16 @@ static void libinputLog(libinput*, libinput_log_priority level, const char* fmt, static void libseatEnableSeat(struct libseat* seat, void* data) { auto PSESSION = (Aquamarine::CSession*)data; PSESSION->active = true; - libinput_resume(PSESSION->libinputHandle); + if (PSESSION->libinputHandle) + libinput_resume(PSESSION->libinputHandle); PSESSION->events.changeActive.emit(); } static void libseatDisableSeat(struct libseat* seat, void* data) { auto PSESSION = (Aquamarine::CSession*)data; PSESSION->active = false; - libinput_suspend(PSESSION->libinputHandle); + if (PSESSION->libinputHandle) + libinput_suspend(PSESSION->libinputHandle); PSESSION->events.changeActive.emit(); libseat_disable_seat(PSESSION->libseatHandle); } @@ -269,6 +271,9 @@ void Aquamarine::CSession::onReady() { } void Aquamarine::CSession::dispatchUdevEvents() { + if (!udevHandle || !udevMonitor) + return; + auto device = udev_monitor_receive_device(udevMonitor); if (!device) @@ -332,6 +337,9 @@ void Aquamarine::CSession::dispatchUdevEvents() { } void Aquamarine::CSession::dispatchLibinputEvents() { + if (!libinputHandle) + return; + if (int ret = libinput_dispatch(libinputHandle); ret) { backend->log(AQ_LOG_ERROR, std::format("Couldn't dispatch libinput events: {}", strerror(-ret))); return;