Do not pass std::shared_ptr when not transfering ownership

This goes against Google's C++ primer [1] and the Core C++ guidelines
[2]. It incurs additional runtime overhead to increase and
subsequently decrease the reference count without providing value,
since the parent function maintains the a reference to the object
through the duration of the function.

1: go/cpp-primer#unique_ptr - "In general, if you find yourself
wanting to use a pointer or reference to a unique_ptr, you're probably
not transferring ownership, so you should usually just pass a raw
pointer or reference to the underlying object, and keep unique_ptr out
of it."
2: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#f7-for-general-use-take-t-or-t-arguments-rather-than-smart-pointers

Test: play games
Change-Id: I04b376b74e904e1c08eb645d5c0dd8ec76566be8
diff --git a/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp b/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp
index 51e7972..7f6023e 100644
--- a/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp
+++ b/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp
@@ -112,7 +112,7 @@
     exec.command = static_cast<void*>(&contextCreate);
     exec.command_size = sizeof(contextCreate);
 
-    ret = instance->execBuffer(exec, blob);
+    ret = instance->execBuffer(exec, blob.get());
     if (ret)
         return nullptr;
 
diff --git a/guest/platform/fuchsia/FuchsiaVirtGpu.h b/guest/platform/fuchsia/FuchsiaVirtGpu.h
index bf3089c..10f6d40 100644
--- a/guest/platform/fuchsia/FuchsiaVirtGpu.h
+++ b/guest/platform/fuchsia/FuchsiaVirtGpu.h
@@ -25,9 +25,9 @@
                        uint64_t size);
     ~FuchsiaVirtGpuBlob();
 
-    uint32_t getResourceHandle(void) override;
-    uint32_t getBlobHandle(void) override;
-    int wait(void) override;
+    uint32_t getResourceHandle() const override;
+    uint32_t getBlobHandle() const override;
+    int wait() override;
 
     int exportBlob(struct VirtGpuExternalHandle& handle) override;
     int transferFromHost(uint32_t offset, uint32_t size) override;
@@ -57,5 +57,5 @@
     VirtGpuBlobPtr createVirglBlob(uint32_t width, uint32_t height, uint32_t format) override;
     VirtGpuBlobPtr importBlob(const struct VirtGpuExternalHandle& handle) override;
 
-    int execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) override;
+    int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob) override;
 };
diff --git a/guest/platform/fuchsia/FuchsiaVirtGpuBlob.cpp b/guest/platform/fuchsia/FuchsiaVirtGpuBlob.cpp
index a300f61..8e512a7 100644
--- a/guest/platform/fuchsia/FuchsiaVirtGpuBlob.cpp
+++ b/guest/platform/fuchsia/FuchsiaVirtGpuBlob.cpp
@@ -23,12 +23,12 @@
 
 FuchsiaVirtGpuBlob::~FuchsiaVirtGpuBlob(void) {}
 
-uint32_t FuchsiaVirtGpuBlob::getBlobHandle(void) {
+uint32_t FuchsiaVirtGpuBlob::getBlobHandle() const {
     ALOGE("%s: unimplemented", __func__);
     return 0;
 }
 
-uint32_t FuchsiaVirtGpuBlob::getResourceHandle(void) {
+uint32_t FuchsiaVirtGpuBlob::getResourceHandle() const {
     ALOGE("%s: unimplemented", __func__);
     return 0;
 }
diff --git a/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp b/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
index 37ad69b..0c97d2f 100644
--- a/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
+++ b/guest/platform/fuchsia/FuchsiaVirtGpuDevice.cpp
@@ -43,7 +43,8 @@
     return nullptr;
 }
 
-int FuchsiaVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) {
+int FuchsiaVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer,
+                                     const VirtGpuBlob* blob) {
     ALOGE("%s: unimplemented", __func__);
     return 0;
 }
diff --git a/guest/platform/include/VirtGpu.h b/guest/platform/include/VirtGpu.h
index 3f1b489..db5e2af 100644
--- a/guest/platform/include/VirtGpu.h
+++ b/guest/platform/include/VirtGpu.h
@@ -134,9 +134,9 @@
   public:
     virtual ~VirtGpuBlob() {}
 
-    virtual uint32_t getResourceHandle(void) = 0;
-    virtual uint32_t getBlobHandle(void) = 0;
-    virtual int wait(void) = 0;
+    virtual uint32_t getResourceHandle() const = 0;
+    virtual uint32_t getBlobHandle() const = 0;
+    virtual int wait() = 0;
 
     virtual VirtGpuBlobMappingPtr createMapping(void) = 0;
     virtual int exportBlob(struct VirtGpuExternalHandle& handle) = 0;
@@ -172,9 +172,9 @@
     virtual VirtGpuBlobPtr createVirglBlob(uint32_t width, uint32_t height, uint32_t virglFormat) = 0;
     virtual VirtGpuBlobPtr importBlob(const struct VirtGpuExternalHandle& handle) = 0;
 
-    virtual int execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) = 0;
+    virtual int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob) = 0;
 
-  private:
+   private:
     enum VirtGpuCapset mCapset;
 };
 
diff --git a/guest/platform/linux/LinuxVirtGpu.h b/guest/platform/linux/LinuxVirtGpu.h
index 8cccb0a..6515728 100644
--- a/guest/platform/linux/LinuxVirtGpu.h
+++ b/guest/platform/linux/LinuxVirtGpu.h
@@ -24,9 +24,9 @@
                      uint64_t size);
     ~LinuxVirtGpuBlob();
 
-    uint32_t getResourceHandle(void) override;
-    uint32_t getBlobHandle(void) override;
-    int wait(void) override;
+    uint32_t getResourceHandle() const override;
+    uint32_t getBlobHandle() const override;
+    int wait() override;
 
     VirtGpuBlobMappingPtr createMapping(void) override;
     int exportBlob(struct VirtGpuExternalHandle& handle) override;
@@ -70,7 +70,7 @@
     VirtGpuBlobPtr createVirglBlob(uint32_t width, uint32_t height, uint32_t virglFormat) override;
 
     virtual VirtGpuBlobPtr importBlob(const struct VirtGpuExternalHandle& handle);
-    virtual int execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob);
+    virtual int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob);
 
    private:
     int64_t mDeviceHandle;
diff --git a/guest/platform/linux/LinuxVirtGpuBlob.cpp b/guest/platform/linux/LinuxVirtGpuBlob.cpp
index 0d5035f..9ba1adc 100644
--- a/guest/platform/linux/LinuxVirtGpuBlob.cpp
+++ b/guest/platform/linux/LinuxVirtGpuBlob.cpp
@@ -33,7 +33,7 @@
       mResourceHandle(resourceHandle),
       mSize(size) {}
 
-LinuxVirtGpuBlob::~LinuxVirtGpuBlob(void) {
+LinuxVirtGpuBlob::~LinuxVirtGpuBlob() {
     struct drm_gem_close gem_close {
         .handle = mBlobHandle, .pad = 0,
     };
@@ -45,11 +45,11 @@
     }
 }
 
-uint32_t LinuxVirtGpuBlob::getBlobHandle(void) { return mBlobHandle; }
+uint32_t LinuxVirtGpuBlob::getBlobHandle() const { return mBlobHandle; }
 
-uint32_t LinuxVirtGpuBlob::getResourceHandle(void) { return mResourceHandle; }
+uint32_t LinuxVirtGpuBlob::getResourceHandle() const { return mResourceHandle; }
 
-VirtGpuBlobMappingPtr LinuxVirtGpuBlob::createMapping(void) {
+VirtGpuBlobMappingPtr LinuxVirtGpuBlob::createMapping() {
     int ret;
     struct drm_virtgpu_map map {
         .handle = mBlobHandle, .pad = 0,
diff --git a/guest/platform/linux/LinuxVirtGpuDevice.cpp b/guest/platform/linux/LinuxVirtGpuDevice.cpp
index 9e35cdb..a54abfc 100644
--- a/guest/platform/linux/LinuxVirtGpuDevice.cpp
+++ b/guest/platform/linux/LinuxVirtGpuDevice.cpp
@@ -245,7 +245,7 @@
                                               static_cast<uint64_t>(info.size));
 }
 
-int LinuxVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) {
+int LinuxVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob) {
     int ret;
     struct drm_virtgpu_execbuffer exec = {0};
     uint32_t blobHandle;
diff --git a/guest/platform/rutabaga/RutabagaVirtGpu.h b/guest/platform/rutabaga/RutabagaVirtGpu.h
index 0abea2b..8cf07f5 100644
--- a/guest/platform/rutabaga/RutabagaVirtGpu.h
+++ b/guest/platform/rutabaga/RutabagaVirtGpu.h
@@ -44,8 +44,8 @@
 
     VirtGpuBlobMappingPtr createMapping(void) override;
 
-    uint32_t getResourceHandle() override;
-    uint32_t getBlobHandle() override;
+    uint32_t getResourceHandle() const override;
+    uint32_t getBlobHandle() const override;
 
     int exportBlob(VirtGpuExternalHandle& handle) override;
     int wait() override;
@@ -86,9 +86,9 @@
 
     VirtGpuBlobPtr importBlob(const struct VirtGpuExternalHandle& handle) override;
 
-    int execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) override;
+    int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob) override;
 
-  private:
+   private:
     const uint32_t mContextId;
     const VirtGpuCapset mCapset;
 
diff --git a/guest/platform/rutabaga/RutabagaVirtGpuBlob.cpp b/guest/platform/rutabaga/RutabagaVirtGpuBlob.cpp
index 2799b74..0b7db44 100644
--- a/guest/platform/rutabaga/RutabagaVirtGpuBlob.cpp
+++ b/guest/platform/rutabaga/RutabagaVirtGpuBlob.cpp
@@ -34,9 +34,9 @@
     return std::make_shared<RutabagaVirtGpuBlobMapping>(shared_from_this(), mapped);
 }
 
-uint32_t RutabagaVirtGpuResource::getResourceHandle() { return mResourceId; }
+uint32_t RutabagaVirtGpuResource::getResourceHandle() const { return mResourceId; }
 
-uint32_t RutabagaVirtGpuResource::getBlobHandle() {
+uint32_t RutabagaVirtGpuResource::getBlobHandle() const {
     if (mResourceType != ResourceType::kBlob) {
         ALOGE("Attempting to get blob handle for non-blob resource");
         return -1;
diff --git a/guest/platform/rutabaga/RutabagaVirtGpuDevice.cpp b/guest/platform/rutabaga/RutabagaVirtGpuDevice.cpp
index 4263288..999ac2f 100644
--- a/guest/platform/rutabaga/RutabagaVirtGpuDevice.cpp
+++ b/guest/platform/rutabaga/RutabagaVirtGpuDevice.cpp
@@ -55,7 +55,8 @@
         *resourceIdOpt, RutabagaVirtGpuResource::ResourceType::kPipe, mContextId));
 }
 
-int RutabagaVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) {
+int RutabagaVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer& execbuffer,
+                                      const VirtGpuBlob* blob) {
     std::optional<uint32_t> blobResourceId;
     if (blob) {
         blobResourceId = blob->getResourceHandle();
diff --git a/guest/platform/stub/StubVirtGpu.h b/guest/platform/stub/StubVirtGpu.h
index 35773ec..7466cb5 100644
--- a/guest/platform/stub/StubVirtGpu.h
+++ b/guest/platform/stub/StubVirtGpu.h
@@ -23,8 +23,8 @@
     StubVirtGpuBlob(int64_t deviceHandle, uint32_t blobHandle, uint32_t resourceHandle, uint64_t size);
     ~StubVirtGpuBlob();
 
-    uint32_t getResourceHandle(void) override;
-    uint32_t getBlobHandle(void) override;
+    uint32_t getResourceHandle() const override;
+    uint32_t getBlobHandle() const override;
     int wait(void) override;
 
     VirtGpuBlobMappingPtr createMapping(void) override;
@@ -69,7 +69,7 @@
     VirtGpuBlobPtr createVirglBlob(uint32_t width, uint32_t height, uint32_t virglFormat);
     VirtGpuBlobPtr importBlob(const struct VirtGpuExternalHandle& handle) override;
 
-    int execBuffer(struct VirtGpuExecBuffer& execbuffer, VirtGpuBlobPtr blob) override;
+    int execBuffer(struct VirtGpuExecBuffer& execbuffer, const VirtGpuBlob* blob) override;
 
     virtual VirtGpuBlobPtr createColorBuffer(int width, int height, uint32_t glFormat);
     virtual VirtGpuBlobPtr createColorBuffer(int size);
diff --git a/guest/platform/stub/StubVirtGpuBlob.cpp b/guest/platform/stub/StubVirtGpuBlob.cpp
index 4e4b982..4e8c23c 100644
--- a/guest/platform/stub/StubVirtGpuBlob.cpp
+++ b/guest/platform/stub/StubVirtGpuBlob.cpp
@@ -23,21 +23,15 @@
       mResourceHandle(resourceHandle),
       mSize(size) {}
 
-StubVirtGpuBlob::~StubVirtGpuBlob(void) {
+StubVirtGpuBlob::~StubVirtGpuBlob() {
     // Unimplemented stub
 }
 
-uint32_t StubVirtGpuBlob::getBlobHandle(void) {
-    return 0;
-}
+uint32_t StubVirtGpuBlob::getBlobHandle() const { return 0; }
 
-uint32_t StubVirtGpuBlob::getResourceHandle(void) {
-    return 0;
-}
+uint32_t StubVirtGpuBlob::getResourceHandle() const { return 0; }
 
-VirtGpuBlobMappingPtr StubVirtGpuBlob::createMapping(void) {
-    return nullptr;
-}
+VirtGpuBlobMappingPtr StubVirtGpuBlob::createMapping() { return nullptr; }
 
 int StubVirtGpuBlob::wait() {
     return -1;
diff --git a/guest/platform/stub/StubVirtGpuDevice.cpp b/guest/platform/stub/StubVirtGpuDevice.cpp
index c3a6c70..7908c85 100644
--- a/guest/platform/stub/StubVirtGpuDevice.cpp
+++ b/guest/platform/stub/StubVirtGpuDevice.cpp
@@ -41,9 +41,7 @@
     return nullptr;
 }
 
-int StubVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer&, VirtGpuBlobPtr) {
-    return -1;
-}
+int StubVirtGpuDevice::execBuffer(struct VirtGpuExecBuffer&, const VirtGpuBlob*) { return -1; }
 
 VirtGpuBlobPtr createColorBuffer(int, int, uint32_t) {
     return nullptr;
diff --git a/guest/vulkan_enc/ResourceTracker.cpp b/guest/vulkan_enc/ResourceTracker.cpp
index 202090a..6368b38 100644
--- a/guest/vulkan_enc/ResourceTracker.cpp
+++ b/guest/vulkan_enc/ResourceTracker.cpp
@@ -3068,7 +3068,7 @@
         exec.command_size = sizeof(placeholderCmd);
         exec.flags = kRingIdx;
         exec.ring_idx = 1;
-        if (instance->execBuffer(exec, guestBlob)) {
+        if (instance->execBuffer(exec, guestBlob.get())) {
             ALOGE("Failed to allocate coherent memory: failed to execbuffer for wait.");
             return VK_ERROR_OUT_OF_HOST_MEMORY;
         }