From 14069e6ec4fb31193e0823b1054a795402733189 Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Wed, 17 Jan 2018 20:16:48 -0500
Subject: [PATCH 1/2] vi: Add missing override specifiers

---
 src/core/hle/service/vi/vi.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index cae2c4466..dac681605 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -101,9 +101,9 @@ public:
     }
 
 protected:
-    virtual void SerializeData(){};
+    virtual void SerializeData() {}
 
-    virtual void DeserializeData(){};
+    virtual void DeserializeData() {}
 
 private:
     struct Header {
@@ -152,7 +152,7 @@ public:
     }
     ~IGBPConnectRequestParcel() override = default;
 
-    void DeserializeData() {
+    void DeserializeData() override {
         std::u16string token = ReadInterfaceToken();
         data = Read<Data>();
     }
@@ -199,7 +199,7 @@ public:
     }
     ~IGBPSetPreallocatedBufferRequestParcel() override = default;
 
-    void DeserializeData() {
+    void DeserializeData() override {
         std::u16string token = ReadInterfaceToken();
         data = Read<Data>();
         ASSERT(data.graphic_buffer_length == sizeof(IGBPBuffer));
@@ -236,7 +236,7 @@ public:
     }
     ~IGBPDequeueBufferRequestParcel() override = default;
 
-    void DeserializeData() {
+    void DeserializeData() override {
         std::u16string token = ReadInterfaceToken();
         data = Read<Data>();
     }
@@ -276,7 +276,7 @@ public:
     }
     ~IGBPRequestBufferRequestParcel() override = default;
 
-    void DeserializeData() {
+    void DeserializeData() override {
         std::u16string token = ReadInterfaceToken();
         slot = Read<u32_le>();
     }
@@ -312,7 +312,7 @@ public:
     }
     ~IGBPQueueBufferRequestParcel() override = default;
 
-    void DeserializeData() {
+    void DeserializeData() override {
         std::u16string token = ReadInterfaceToken();
         data = Read<Data>();
     }

From 3d19102c48adb397ae4c86ced7c2345eea1c28ee Mon Sep 17 00:00:00 2001
From: Lioncash <mathew1800@gmail.com>
Date: Wed, 17 Jan 2018 20:21:14 -0500
Subject: [PATCH 2/2] vi: Make constructors explicit where applicable

Prevents implicit conversions.
---
 src/core/hle/service/vi/vi.cpp | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index dac681605..02aab6df1 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -26,7 +26,7 @@ public:
     // This default size was chosen arbitrarily.
     static constexpr size_t DefaultBufferSize = 0x40;
     Parcel() : buffer(DefaultBufferSize) {}
-    Parcel(std::vector<u8> data) : buffer(std::move(data)) {}
+    explicit Parcel(std::vector<u8> data) : buffer(std::move(data)) {}
     virtual ~Parcel() = default;
 
     template <typename T>
@@ -121,7 +121,7 @@ private:
 
 class NativeWindow : public Parcel {
 public:
-    NativeWindow(u32 id) : Parcel() {
+    explicit NativeWindow(u32 id) : Parcel() {
         data.id = id;
     }
     ~NativeWindow() override = default;
@@ -147,7 +147,7 @@ private:
 
 class IGBPConnectRequestParcel : public Parcel {
 public:
-    IGBPConnectRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
+    explicit IGBPConnectRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
         Deserialize();
     }
     ~IGBPConnectRequestParcel() override = default;
@@ -168,7 +168,7 @@ public:
 
 class IGBPConnectResponseParcel : public Parcel {
 public:
-    IGBPConnectResponseParcel(u32 width, u32 height) : Parcel() {
+    explicit IGBPConnectResponseParcel(u32 width, u32 height) : Parcel() {
         data.width = width;
         data.height = height;
     }
@@ -194,7 +194,8 @@ private:
 
 class IGBPSetPreallocatedBufferRequestParcel : public Parcel {
 public:
-    IGBPSetPreallocatedBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
+    explicit IGBPSetPreallocatedBufferRequestParcel(const std::vector<u8>& buffer)
+        : Parcel(buffer) {
         Deserialize();
     }
     ~IGBPSetPreallocatedBufferRequestParcel() override = default;
@@ -231,7 +232,7 @@ protected:
 
 class IGBPDequeueBufferRequestParcel : public Parcel {
 public:
-    IGBPDequeueBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
+    explicit IGBPDequeueBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
         Deserialize();
     }
     ~IGBPDequeueBufferRequestParcel() override = default;
@@ -254,7 +255,7 @@ public:
 
 class IGBPDequeueBufferResponseParcel : public Parcel {
 public:
-    IGBPDequeueBufferResponseParcel(u32 slot) : Parcel(), slot(slot) {}
+    explicit IGBPDequeueBufferResponseParcel(u32 slot) : Parcel(), slot(slot) {}
     ~IGBPDequeueBufferResponseParcel() override = default;
 
 protected:
@@ -271,7 +272,7 @@ protected:
 
 class IGBPRequestBufferRequestParcel : public Parcel {
 public:
-    IGBPRequestBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
+    explicit IGBPRequestBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
         Deserialize();
     }
     ~IGBPRequestBufferRequestParcel() override = default;
@@ -286,7 +287,7 @@ public:
 
 class IGBPRequestBufferResponseParcel : public Parcel {
 public:
-    IGBPRequestBufferResponseParcel(IGBPBuffer buffer) : Parcel(), buffer(buffer) {}
+    explicit IGBPRequestBufferResponseParcel(IGBPBuffer buffer) : Parcel(), buffer(buffer) {}
     ~IGBPRequestBufferResponseParcel() override = default;
 
 protected:
@@ -307,7 +308,7 @@ protected:
 
 class IGBPQueueBufferRequestParcel : public Parcel {
 public:
-    IGBPQueueBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
+    explicit IGBPQueueBufferRequestParcel(const std::vector<u8>& buffer) : Parcel(buffer) {
         Deserialize();
     }
     ~IGBPQueueBufferRequestParcel() override = default;
@@ -330,7 +331,7 @@ public:
 
 class IGBPQueueBufferResponseParcel : public Parcel {
 public:
-    IGBPQueueBufferResponseParcel(u32 width, u32 height) : Parcel() {
+    explicit IGBPQueueBufferResponseParcel(u32 width, u32 height) : Parcel() {
         data.width = width;
         data.height = height;
     }
@@ -356,7 +357,7 @@ private:
 
 class IHOSBinderDriver final : public ServiceFramework<IHOSBinderDriver> {
 public:
-    IHOSBinderDriver(std::shared_ptr<NVFlinger> nv_flinger)
+    explicit IHOSBinderDriver(std::shared_ptr<NVFlinger> nv_flinger)
         : ServiceFramework("IHOSBinderDriver"), nv_flinger(std::move(nv_flinger)) {
         static const FunctionInfo functions[] = {
             {0, &IHOSBinderDriver::TransactParcel, "TransactParcel"},
@@ -506,7 +507,7 @@ private:
 
 class IManagerDisplayService final : public ServiceFramework<IManagerDisplayService> {
 public:
-    IManagerDisplayService(std::shared_ptr<NVFlinger> nv_flinger)
+    explicit IManagerDisplayService(std::shared_ptr<NVFlinger> nv_flinger)
         : ServiceFramework("IManagerDisplayService"), nv_flinger(std::move(nv_flinger)) {
         static const FunctionInfo functions[] = {
             {1020, &IManagerDisplayService::CloseDisplay, "CloseDisplay"},