mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
Personalized eTicketのリストを正しく渡せていなかったのを修正
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@846 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
20462efe93
commit
8f470ca407
@ -23,6 +23,7 @@
|
||||
#include <nn/cfg/CTR/cfg_ApiSys.h>
|
||||
#include <nn/nwm.h>
|
||||
#include <nn/am/am_ApiSystemMenu.h>
|
||||
#include <nn/am/am_ApiNetworkImporter.h>
|
||||
|
||||
#include "Controller.h"
|
||||
#include "FileChecker.h"
|
||||
@ -886,7 +887,7 @@ nn::Result ExecSyncMcuRtc(common::HardwareStateManager& manager)
|
||||
return result;
|
||||
}
|
||||
|
||||
bool SetUpProgramIdListBasedOnPersonalizedTicket(nn::ProgramId* list, s32* personalizedTicketNum)
|
||||
bool SetUpProgramIdListBasedOnPersonalizedTicket(nn::ProgramId** list, s32* personalizedTicketNum)
|
||||
{
|
||||
const size_t MAX_TICKET_NUM = 2000;
|
||||
common::HeapManager ticketBuffer(sizeof(nn::am::TicketInfo) * MAX_TICKET_NUM);
|
||||
@ -895,27 +896,28 @@ bool SetUpProgramIdListBasedOnPersonalizedTicket(nn::ProgramId* list, s32* perso
|
||||
return false;
|
||||
}
|
||||
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(
|
||||
nn::am::InitializeForNetworkImporter());
|
||||
|
||||
nn::am::TicketInfo* ticketInfo = new (ticketBuffer.GetAddr()) nn::am::TicketInfo[MAX_TICKET_NUM];
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_NULL(ticketInfo);
|
||||
|
||||
nn::Result result = nn::am::GetPersonalizedTicketInfoList(personalizedTicketNum, ticketInfo, MAX_TICKET_NUM);
|
||||
if(result.IsFailure())
|
||||
{
|
||||
COMMON_LOGGER_RESULT(result, __func__)
|
||||
return false;
|
||||
}
|
||||
|
||||
list = reinterpret_cast<nn::ProgramId*>(common::GetAllocator()->Allocate(
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(
|
||||
nn::am::GetPersonalizedTicketInfoList(personalizedTicketNum, ticketInfo, MAX_TICKET_NUM));
|
||||
|
||||
*list = reinterpret_cast<nn::ProgramId*>(common::GetAllocator()->Allocate(
|
||||
sizeof(nn::ProgramId) * (*personalizedTicketNum), nn::fnd::ExpHeap::DEFAULT_ALIGNMENT));
|
||||
if(!list)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_NULL(*list);
|
||||
|
||||
for (s32 i = 0; i < *personalizedTicketNum; i++)
|
||||
{
|
||||
list[i] = ticketInfo[i].titleId;
|
||||
*list[i] = ticketInfo[i].titleId;
|
||||
}
|
||||
|
||||
COMMON_LOGGER_RETURN_FALSE_IF_FAILED(
|
||||
nn::am::FinalizeForNetworkImporter());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1552,7 +1554,7 @@ void ControlState(common::HardwareStateManager& manager, common::OperationMessag
|
||||
case RESTORE_PREORDER_TITLE:
|
||||
{
|
||||
s32 personalizedTicketNum;
|
||||
if(!SetUpProgramIdListBasedOnPersonalizedTicket(sp_ProgramId, &personalizedTicketNum))
|
||||
if(!SetUpProgramIdListBasedOnPersonalizedTicket(&sp_ProgramId, &personalizedTicketNum))
|
||||
{
|
||||
s_RestoreState = FAIL;
|
||||
break;
|
||||
@ -1593,7 +1595,7 @@ void ControlState(common::HardwareStateManager& manager, common::OperationMessag
|
||||
case PREINSTALL_RESTORE_PREORDER_TITLE:
|
||||
{
|
||||
s32 personalizedTicketNum;
|
||||
if(!SetUpProgramIdListBasedOnPersonalizedTicket(sp_ProgramId, &personalizedTicketNum))
|
||||
if(!SetUpProgramIdListBasedOnPersonalizedTicket(&sp_ProgramId, &personalizedTicketNum))
|
||||
{
|
||||
s_RestoreState = FAIL;
|
||||
break;
|
||||
|
||||
@ -86,6 +86,16 @@
|
||||
} \
|
||||
}while(0)
|
||||
|
||||
#define COMMON_LOGGER_RETURN_FALSE_IF_NULL(ptr) \
|
||||
do \
|
||||
{ \
|
||||
if(!ptr) \
|
||||
{ \
|
||||
COMMON_LOGGER("ptr == NULL, %d, %s", __LINE__, __func__); \
|
||||
return false; \
|
||||
} \
|
||||
}while(0)
|
||||
|
||||
#define COMMON_LOGGER_RETURN_VOID_IF_FAILED(result) \
|
||||
do \
|
||||
{ \
|
||||
|
||||
Loading…
Reference in New Issue
Block a user