summaryrefslogtreecommitdiff
path: root/src/protocols/DRMSyncobj.cpp
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-02-15 14:48:52 +0100
committerGitHub <noreply@github.com>2025-02-15 14:48:52 +0100
commit3eb6cb1875bd2f0850d19b1ad1b554c61b06bcec (patch)
tree974091ef089f9c4034f58d3cfb208a6b2d1e26ff /src/protocols/DRMSyncobj.cpp
parent2f967037aa00c4aecce62222e5e21c1790148eb0 (diff)
syncobj: ensure we only add waiters on succesful checks (#9412)
timeline check only returns nullopt on ETIME_ERR , meaning the if check later on returns true if drmSyncobjTimelineWait returns anything else like EINVAL/EPERM/EACCESS etc, so actually check the returned .value() of the std::optional. also move the fd to rvalue references.
Diffstat (limited to 'src/protocols/DRMSyncobj.cpp')
-rw-r--r--src/protocols/DRMSyncobj.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/protocols/DRMSyncobj.cpp b/src/protocols/DRMSyncobj.cpp
index 23dafbca..38aab305 100644
--- a/src/protocols/DRMSyncobj.cpp
+++ b/src/protocols/DRMSyncobj.cpp
@@ -75,7 +75,7 @@ CDRMSyncobjSurfaceResource::CDRMSyncobjSurfaceResource(SP<CWpLinuxDrmSyncobjSurf
return;
}
- if (materialized)
+ if (materialized.value())
return;
surface->lockPendingState();
@@ -104,7 +104,7 @@ bool CDRMSyncobjSurfaceResource::good() {
return resource->resource();
}
-CDRMSyncobjTimelineResource::CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, CFileDescriptor fd_) : fd(std::move(fd_)), resource(resource_) {
+CDRMSyncobjTimelineResource::CDRMSyncobjTimelineResource(SP<CWpLinuxDrmSyncobjTimelineV1> resource_, CFileDescriptor&& fd_) : fd(std::move(fd_)), resource(resource_) {
if UNLIKELY (!good())
return;