Skip to content

Commit b5224b5

Browse files
When in CLI mode qApp needs to be deleted before exiting or Qt's destructor complains (because of the memory leak that would occur) (flameshot-org#4546)
1 parent 76d8833 commit b5224b5

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/main.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,9 @@ int main(int argc, char* argv[])
529529
req.addSaveTask();
530530
}
531531
}
532-
return requestCaptureAndWait(req);
532+
int guiExitCode = requestCaptureAndWait(req);
533+
delete qApp;
534+
return guiExitCode;
533535
} else if (parser.isSet(fullArgument)) { // FULL
534536
reinitializeAsQApplication(argc, argv, translator, qtTranslator);
535537

@@ -564,7 +566,11 @@ int main(int argc, char* argv[])
564566
if (!clipboard && path.isEmpty() && !raw && !upload) {
565567
req.addSaveTask();
566568
}
567-
return requestCaptureAndWait(req);
569+
{
570+
int fullExitCode = requestCaptureAndWait(req);
571+
delete qApp;
572+
return fullExitCode;
573+
}
568574
} else if (parser.isSet(screenArgument)) { // SCREEN
569575
reinitializeAsQApplication(argc, argv, translator, qtTranslator);
570576

@@ -614,7 +620,11 @@ int main(int argc, char* argv[])
614620
req.addSaveTask();
615621
}
616622

617-
return requestCaptureAndWait(req);
623+
{
624+
int screenExitCode = requestCaptureAndWait(req);
625+
delete qApp;
626+
return screenExitCode;
627+
}
618628
} else if (parser.isSet(configArgument)) { // CONFIG
619629
bool autostart = parser.isSet(autostartOption);
620630
bool notification = parser.isSet(notificationOption);
@@ -680,6 +690,6 @@ int main(int argc, char* argv[])
680690
}
681691
}
682692
finish:
683-
693+
delete qApp;
684694
return 0;
685695
}

0 commit comments

Comments
 (0)