Resultのハンドリング修正

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@482 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
N2614 2011-11-08 05:43:37 +00:00
parent ad17a25364
commit 5732edc0e7
3 changed files with 28 additions and 27 deletions

View File

@ -743,11 +743,9 @@ void ImportThreadFunc()
{
common::SaveDataMover saveDataMover;
saveDataMover.StartImport(buf, bufSize, &s_ImportProgress);
if(saveDataMover.GetLastResult().IsFailure())
{
s_IsImportSucceeded = false;
return;
}
COMMON_LOGGER_RETURN_VOID_SET_BOOL_IF_FAILED(
saveDataMover.GetLastResult(), s_IsImportSucceeded
);
}
else
{

View File

@ -774,10 +774,7 @@ nn::Result CalculateFileSizeRecursively(std::wstring currentDirectory, s64& file
NN_LOG("%s\n", common::GetCharStr(currentDirectory.c_str()));
result = dir.TryInitialize(currentDirectory.c_str());
if(result.IsFailure())
{
return result;
}
NN_UTIL_RETURN_IF_FAILED(result);
for (;;)
{

View File

@ -131,21 +131,26 @@ void SaveDataMover::SetupExport()
common::HeapManager contextHeap(sizeof(moveContext));
void* enc;
enc = contextHeap.GetAddr();
if(enc != NULL)
if(!enc)
{
// AES暗号化する
nn::crypto::SwAesCtrContext swAesCtrContest;
swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key));
swAesCtrContest.Encrypt(enc, &moveContext, sizeof(moveContext));
common::SdReaderWriter sdWriter;
sdWriter.WriteBufWithCmac(common::MOVE_CONTEXT_PATHNAME, enc, sizeof(moveContext));
m_Result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_APPLICATION,
nn::Result::DESCRIPTION_OUT_OF_MEMORY);
return;
}
// AES暗号化する
nn::crypto::SwAesCtrContext swAesCtrContest;
swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key));
m_Result = swAesCtrContest.Encrypt(enc, &moveContext, sizeof(moveContext));
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
common::SdReaderWriter sdWriter;
m_Result = sdWriter.WriteBufWithCmac(common::MOVE_CONTEXT_PATHNAME, enc, sizeof(moveContext));
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
// 3. 出力用ディレクトリの作成
// 3.1 システムセーブデータ用ディレクトリ
common::SdReaderWriter sdWriter;
m_Result = sdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(
common::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_SYS_NAME)).c_str());
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
@ -154,7 +159,6 @@ void SaveDataMover::SetupExport()
m_Result = sdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(
common::SD_SAVEDATA_ROOT_NAME) + std::wstring(common::SD_SAEVDATA_EXT_NAME)).c_str());
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
}
void SaveDataMover::CalculateExportFileSize()
@ -361,7 +365,8 @@ void SaveDataMover::ImportSystemSaveData(void* buf, size_t bufSize, u64* progres
// ディレクトリ内を見てセーブデータをインポートする。
while(1)
{
root.TryRead(&numOut, &entry, 1);
m_Result = root.TryRead(&numOut, &entry, 1);
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
if(numOut == 0)
{
break;
@ -419,7 +424,8 @@ void SaveDataMover::ImportSharedExtSaveData(void* buf, size_t bufSize, u64* prog
s32 numEntry;
while(1)
{
srcRoot.TryRead(&numEntry, &entry, 1);
m_Result = srcRoot.TryRead(&numEntry, &entry, 1);
COMMON_LOGGER_RETURN_VOID_IF_FAILED(m_Result);
if(numEntry == 0)
{
break;
@ -525,16 +531,16 @@ nn::Result SaveDataMover::CopyRecursivly(void* buf, size_t bufSize, const char*
if (entry.attributes.isDirectory)
{
nn::Result result = nn::fs::TryCreateDirectory(destPath);
if (result.IsFailure())
m_Result = nn::fs::TryCreateDirectory(destPath);
if (m_Result.IsFailure())
{
if (result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS
&& result.GetModule() == nn::Result::MODULE_NN_FS)
if (m_Result.GetDescription() == nn::fs::DESCRIPTION_FAT_ALREADY_EXISTS
&& m_Result.GetModule() == nn::Result::MODULE_NN_FS)
{
}
else
{
return result;
return m_Result;
}
}
m_Result = CopyRecursivly(buf, bufSize, srcPath, destPath, progress);