Fix "copied for each invocation" warning
Bug: n/a
Test: cvd start --gpu_mode=gfxstream_guest_angle_host_swiftshader
Change-Id: I9db45c066ffba8888b43cfb39d0f5d4ebdb8a4cf
GitOrigin-RevId: fdecd454d17448934168e906cfb9633579a6322b
diff --git a/stream-servers/VirtioGpuTimelines.cpp b/stream-servers/VirtioGpuTimelines.cpp
index 7f7427f..635aa81 100644
--- a/stream-servers/VirtioGpuTimelines.cpp
+++ b/stream-servers/VirtioGpuTimelines.cpp
@@ -49,7 +49,7 @@
FenceCompletionCallback fenceCompletionCallback) {
AutoLock lock(mLock);
- auto fence = std::make_unique<Fence>(fenceId, fenceCompletionCallback);
+ auto fence = std::make_unique<Fence>(fenceId, std::move(fenceCompletionCallback));
mTimelineQueues[ring].emplace_back(std::move(fence));
if (mWithAsyncCallback) {
poll_locked(ring);
@@ -106,7 +106,7 @@
// item is an incompleted task.
struct {
bool operator()(std::unique_ptr<Fence> &fence) {
- (*fence->mCompletionCallback)();
+ fence->mCompletionCallback();
return false;
}
bool operator()(std::shared_ptr<Task> &task) {
diff --git a/stream-servers/VirtioGpuTimelines.h b/stream-servers/VirtioGpuTimelines.h
index 3716ef4..de255c9 100644
--- a/stream-servers/VirtioGpuTimelines.h
+++ b/stream-servers/VirtioGpuTimelines.h
@@ -88,10 +88,9 @@
VirtioGpuTimelines(bool withAsyncCallback);
struct Fence {
FenceId mId;
- std::unique_ptr<FenceCompletionCallback> mCompletionCallback;
+ FenceCompletionCallback mCompletionCallback;
Fence(FenceId id, FenceCompletionCallback completionCallback)
- : mId(id),
- mCompletionCallback(std::make_unique<FenceCompletionCallback>(completionCallback)) {}
+ : mId(id), mCompletionCallback(std::move(completionCallback)) {}
};
struct Task {
TaskId mId;
diff --git a/stream-servers/virtio-gpu-gfxstream-renderer.cpp b/stream-servers/virtio-gpu-gfxstream-renderer.cpp
index dcf591e..e5911d7 100644
--- a/stream-servers/virtio-gpu-gfxstream-renderer.cpp
+++ b/stream-servers/virtio-gpu-gfxstream-renderer.cpp
@@ -865,7 +865,7 @@
if (!callback) {
return -EINVAL;
}
- mVirtioGpuTimelines->enqueueFence(ring, fence_id, callback);
+ mVirtioGpuTimelines->enqueueFence(ring, fence_id, std::move(callback));
return 0;
}