diff --git a/build/libraries_sysmenu/util/ARM9/src/util_menuAppManager.c b/build/libraries_sysmenu/util/ARM9/src/util_menuAppManager.c index af6c1ae3..641a6c76 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util_menuAppManager.c +++ b/build/libraries_sysmenu/util/ARM9/src/util_menuAppManager.c @@ -380,7 +380,6 @@ static void AMN_initCardTitleList_() { } -#if 0 // 指定されたtitleIDのタイトルツリーを消去 #define TITLE_TREE_PATH_LENGTH 12+8+1+8+1 static void AMNi_deleteTitleTree( NAMTitleId titleID ) @@ -390,7 +389,6 @@ static void AMNi_deleteTitleTree( NAMTitleId titleID ) (void)FS_DeleteDirectoryAuto( path ); OS_TPrintf( "AMNi_deleteTitleTree : delete %s\n", path ); } -#endif static BOOL AMNi_getAndAddNandTitleData( NAMTitleId titleID, BOOL readShowData ) { @@ -434,8 +432,19 @@ static BOOL AMNi_getAndAddNandTitleData( NAMTitleId titleID, BOOL readShowData ) if(readLen != NAM_OK){ // error SDK_ASSERT( FALSE ); - // フェータルエラーを設定 - UTL_SetFatalError( FATAL_ERROR_LOAD_OPENFILE_FAILED ); + + // システムアプリの場合はフェータルに落とし、ユーザーアプリの場合は削除する + if( titleID & TITLE_ID_APP_TYPE_MASK ) + { + // フェータルエラーを設定 + UTL_SetFatalError( FATAL_ERROR_LOAD_OPENFILE_FAILED ); + } + else + { + // アプリを削除 + AMNi_deleteTitleTree( titleID ); + } + return FALSE; } @@ -449,8 +458,19 @@ static BOOL AMNi_getAndAddNandTitleData( NAMTitleId titleID, BOOL readShowData ) { // error SDK_ASSERT( FALSE ); - // フェータルエラーを設定 - UTL_SetFatalError( FATAL_ERROR_LOAD_OPENFILE_FAILED ); + + // システムアプリの場合はフェータルに落とし、ユーザーアプリの場合は削除する + if( titleID & TITLE_ID_APP_TYPE_MASK ) + { + // フェータルエラーを設定 + UTL_SetFatalError( FATAL_ERROR_LOAD_OPENFILE_FAILED ); + } + else + { + // アプリを削除 + AMNi_deleteTitleTree( titleID ); + } + return FALSE; } @@ -465,8 +485,19 @@ static BOOL AMNi_getAndAddNandTitleData( NAMTitleId titleID, BOOL readShowData ) // error SDK_ASSERT( FALSE ); FS_CloseFile(file); - // フェータルエラーを設定 - UTL_SetFatalError( FATAL_ERROR_LOAD_READHEADER_FAILED ); + + // システムアプリの場合はフェータルに落とし、ユーザーアプリの場合は削除する + if( titleID & TITLE_ID_APP_TYPE_MASK ) + { + // フェータルエラーを設定 + UTL_SetFatalError( FATAL_ERROR_LOAD_READHEADER_FAILED ); + } + else + { + // アプリを削除 + AMNi_deleteTitleTree( titleID ); + } + return FALSE; }