Skip to content

Commit 2bd8e21

Browse files
committed
fix atomic reset being skipped, check nullptr elsewhere instead
1 parent 2ff0634 commit 2bd8e21

File tree

2 files changed

+2
-5
lines changed

2 files changed

+2
-5
lines changed

src/backend/drm/DRM.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,7 @@ int Aquamarine::CDRMBackend::drmFD() {
909909
static void handlePF(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, unsigned crtc_id, void* data) {
910910
auto pageFlip = (SDRMPageFlip*)data;
911911

912-
if (!pageFlip->connector)
912+
if (!pageFlip || !pageFlip->connector)
913913
return;
914914

915915
pageFlip->connector->isPageFlipPending = false;

src/backend/drm/impl/Atomic.cpp

+1-4
Original file line numberDiff line numberDiff line change
@@ -244,10 +244,7 @@ bool Aquamarine::CDRMAtomicRequest::commit(uint32_t flagssss) {
244244
return false;
245245
}
246246

247-
if (!conn)
248-
return false;
249-
250-
if (auto ret = drmModeAtomicCommit(backend->gpu->fd, req, flagssss, &conn->pendingPageFlip); ret) {
247+
if (auto ret = drmModeAtomicCommit(backend->gpu->fd, req, flagssss, conn ? &conn->pendingPageFlip : nullptr); ret) {
251248
backend->log((flagssss & DRM_MODE_ATOMIC_TEST_ONLY) ? AQ_LOG_DEBUG : AQ_LOG_ERROR,
252249
std::format("atomic drm request: failed to commit: {}, flags: {}", strerror(ret == -1 ? errno : -ret), flagsToStr(flagssss)));
253250
return false;

0 commit comments

Comments
 (0)