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;
     }