Просмотр исходного кода

service/acc: Silence compiler warnings

Silences compiler warnings related to truncation. This also introduces a
small helper function to perform the clamping of the image size.
Lioncash 7 лет назад
Родитель
Сommit
6f00628564
1 измененных файлов с 8 добавлено и 5 удалено
  1. 8 5
      src/core/hle/service/acc/acc.cpp

+ 8 - 5
src/core/hle/service/acc/acc.cpp

@@ -21,8 +21,6 @@
 
 namespace Service::Account {
 
-constexpr u32 MAX_JPEG_IMAGE_SIZE = 0x20000;
-
 // TODO: RE this structure
 struct UserData {
     INSERT_PADDING_WORDS(1);
@@ -39,6 +37,11 @@ static std::string GetImagePath(UUID uuid) {
            "/system/save/8000000000000010/su/avators/" + uuid.FormatSwitch() + ".jpg";
 }
 
+static constexpr u32 SanitizeJPEGSize(std::size_t size) {
+    constexpr std::size_t max_jpeg_image_size = 0x20000;
+    return static_cast<u32>(std::min(size, max_jpeg_image_size));
+}
+
 class IProfile final : public ServiceFramework<IProfile> {
 public:
     explicit IProfile(UUID user_id, ProfileManager& profile_manager)
@@ -112,12 +115,12 @@ private:
             return;
         }
 
-        const auto size = std::min<u32>(image.GetSize(), MAX_JPEG_IMAGE_SIZE);
+        const u32 size = SanitizeJPEGSize(image.GetSize());
         std::vector<u8> buffer(size);
         image.ReadBytes(buffer.data(), buffer.size());
 
         ctx.WriteBuffer(buffer.data(), buffer.size());
-        rb.Push<u32>(buffer.size());
+        rb.Push<u32>(size);
     }
 
     void GetImageSize(Kernel::HLERequestContext& ctx) {
@@ -133,7 +136,7 @@ private:
                         "Failed to load user provided image! Falling back to built-in backup...");
             rb.Push<u32>(backup_jpeg_size);
         } else {
-            rb.Push<u32>(std::min<u32>(image.GetSize(), MAX_JPEG_IMAGE_SIZE));
+            rb.Push<u32>(SanitizeJPEGSize(image.GetSize()));
         }
     }