]> Chaos Git - corbenik/corbenik.git/commitdiff
General cleanup on @Wolfvak's code segment loading
authorchaoskagami <chaos.kagami@gmail.com>
Thu, 9 Jun 2016 13:55:04 +0000 (09:55 -0400)
committerchaoskagami <chaos.kagami@gmail.com>
Thu, 9 Jun 2016 13:57:53 +0000 (09:57 -0400)
external/loader/source/patcher.c

index 6f5d855c828888093fed1bafa9dd6ad980d1490c..883ebf936b4494ba1db2ff4723141f25fb1b6b5c 100644 (file)
@@ -346,24 +346,21 @@ sd_code(u64 progId, u8 *code_loc, u32 code_len)
         logstr(code_path);
         logstr("\n");
     }
-
     // Either system title with OPTION_LOADER_DUMPCODE_ALL enabled, or regular title
-    else if ( config.options[OPTION_LOADER_DUMPCODE] && ((highTid != 0x00040000 && highTid != 0x00040002 && config.options[OPTION_LOADER_DUMPCODE_ALL]) || (highTid == 0x00040000 || highTid == 0x00040002)))
-    {
-        if (R_SUCCEEDED(fileOpen(&code_f, ARCHIVE_SDMC, code_path, FS_OPEN_WRITE | FS_OPEN_CREATE)))
-        {
+    else if ( config.options[OPTION_LOADER_DUMPCODE] ) {
+        if ((highTid == 0x00040000 || highTid == 0x00040002) && !config.options[OPTION_LOADER_DUMPCODE_ALL])
+            goto return_close;
+
+        if (R_SUCCEEDED(fileOpen(&code_f, ARCHIVE_SDMC, code_path, FS_OPEN_WRITE | FS_OPEN_CREATE))) {
             FSFILE_Write(code_f, &len, 0, code_loc, code_len, FS_WRITE_FLUSH | FS_WRITE_UPDATE_TIME);
             logstr("  dumped code to ");
             logstr(code_path);
             logstr("\n");
         }
-        else
-        {
-            FSFILE_Close(code_f);
-            return;
-        }
     }
 
+return_close:
+
     FSFILE_Close(code_f);
     return;
 }