Răsfoiți Sursa

Merge pull request #13095 from liamwhite/ns-oops

ns: fix alignment of uid type
liamwhite 2 ani în urmă
părinte
comite
7b5bdd076d

+ 3 - 3
src/core/hle/service/ns/application_manager_interface.cpp

@@ -436,14 +436,14 @@ Result IApplicationManagerInterface::GetApplicationViewWithPromotionInfo(
 
 Result IApplicationManagerInterface::GetApplicationRightsOnClient(
     OutArray<ApplicationRightsOnClient, BufferAttr_HipcMapAlias> out_rights, Out<u32> out_count,
-    Common::UUID account_id, u32 flags, u64 application_id) {
+    u32 flags, u64 application_id, Uid account_id) {
     LOG_WARNING(Service_NS, "(STUBBED) called, flags={}, application_id={:016X}, account_id={}",
-                flags, application_id, account_id.FormattedString());
+                flags, application_id, account_id.uuid.FormattedString());
 
     if (!out_rights.empty()) {
         ApplicationRightsOnClient rights{};
         rights.application_id = application_id;
-        rights.uid = account_id;
+        rights.uid = account_id.uuid;
         rights.flags = 0;
         rights.flags2 = 0;
 

+ 1 - 1
src/core/hle/service/ns/application_manager_interface.h

@@ -37,7 +37,7 @@ public:
         InArray<u64, BufferAttr_HipcMapAlias> application_ids);
     Result GetApplicationRightsOnClient(
         OutArray<ApplicationRightsOnClient, BufferAttr_HipcMapAlias> out_rights, Out<u32> out_count,
-        Common::UUID account_id, u32 flags, u64 application_id);
+        u32 flags, u64 application_id, Uid account_id);
     Result CheckSdCardMountStatus();
     Result GetSdCardMountStatusChangedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
     Result GetFreeSpaceSize(Out<s64> out_free_space_size, FileSys::StorageId storage_id);

+ 5 - 0
src/core/hle/service/ns/ns_types.h

@@ -108,4 +108,9 @@ struct ContentPath {
 };
 static_assert(sizeof(ContentPath) == 0x10, "ContentPath has incorrect size.");
 
+struct Uid {
+    alignas(8) Common::UUID uuid;
+};
+static_assert(sizeof(Uid) == 0x10, "Uid has incorrect size.");
+
 } // namespace Service::NS

+ 2 - 3
src/core/hle/service/ns/query_service.cpp

@@ -41,8 +41,7 @@ IQueryService::IQueryService(Core::System& system_) : ServiceFramework{system_,
 IQueryService::~IQueryService() = default;
 
 Result IQueryService::QueryPlayStatisticsByApplicationIdAndUserAccountId(
-    Out<PlayStatistics> out_play_statistics, bool unknown, Common::UUID account_id,
-    u64 application_id) {
+    Out<PlayStatistics> out_play_statistics, bool unknown, u64 application_id, Uid account_id) {
     // TODO(German77): Read statistics of the game
     *out_play_statistics = {
         .application_id = application_id,
@@ -50,7 +49,7 @@ Result IQueryService::QueryPlayStatisticsByApplicationIdAndUserAccountId(
     };
 
     LOG_WARNING(Service_NS, "(STUBBED) called. unknown={}. application_id={:016X}, account_id={}",
-                unknown, application_id, account_id.FormattedString());
+                unknown, application_id, account_id.uuid.FormattedString());
     R_SUCCEED();
 }
 

+ 2 - 2
src/core/hle/service/ns/query_service.h

@@ -5,6 +5,7 @@
 
 #include "common/uuid.h"
 #include "core/hle/service/cmif_types.h"
+#include "core/hle/service/ns/ns_types.h"
 #include "core/hle/service/service.h"
 
 namespace Service::NS {
@@ -29,8 +30,7 @@ public:
 
 private:
     Result QueryPlayStatisticsByApplicationIdAndUserAccountId(
-        Out<PlayStatistics> out_play_statistics, bool unknown, Common::UUID account_id,
-        u64 application_id);
+        Out<PlayStatistics> out_play_statistics, bool unknown, u64 application_id, Uid account_id);
 };
 
 } // namespace Service::NS