Fix self-delete to run only after successful extraction (v1.1.1).
All checks were successful
Build NRO / build (push) Successful in 1m44s
All checks were successful
Build NRO / build (push) Successful in 1m44s
Only remove PatchExtractor.nro on exit when the Done screen was reached; early quit no longer deletes the NRO. Drop the ineffective mid-run self-delete.
This commit is contained in:
@@ -116,9 +116,6 @@ bool PatchExtractor::cleanup() {
|
||||
if (remove(PATCHES_ZIP) != 0)
|
||||
cleanupOk_ = false;
|
||||
|
||||
// Cannot delete our own NRO while the app is still running; try anyway for edge cases.
|
||||
remove(SELF_NRO);
|
||||
|
||||
remove("sdmc:/switch/.PatchExtractor.nro.star");
|
||||
remove("sdmc:/switch/.packages/boot_package.ini");
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
while (brls::Application::mainLoop()) {}
|
||||
|
||||
PatchExtractor::tryDeleteSelfOnExit();
|
||||
if (PatchActivity::shouldDeleteSelfOnExit())
|
||||
PatchExtractor::tryDeleteSelfOnExit();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
namespace {
|
||||
bool g_deleteSelfOnExit = false;
|
||||
}
|
||||
|
||||
bool PatchActivity::shouldDeleteSelfOnExit() {
|
||||
return g_deleteSelfOnExit;
|
||||
}
|
||||
|
||||
PatchActivity::PatchActivity() {
|
||||
extractor = std::make_unique<PatchExtractor>();
|
||||
|
||||
@@ -128,6 +136,7 @@ void PatchActivity::showScreen(Screen screen) {
|
||||
break;
|
||||
|
||||
case Screen::Done: {
|
||||
g_deleteSelfOnExit = true;
|
||||
titleLabel->setText("Fertig");
|
||||
const unsigned long ok = extractor->getExtracted() - extractor->getSkipped();
|
||||
char msg[128];
|
||||
|
||||
@@ -13,6 +13,9 @@ public:
|
||||
brls::View* createContentView() override;
|
||||
void onContentAvailable() override;
|
||||
|
||||
/** True only after a finished extraction (Done screen was reached). */
|
||||
static bool shouldDeleteSelfOnExit();
|
||||
|
||||
private:
|
||||
enum class Screen { Error, Ready, Extracting, Done };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user