QCoreApplicationPrivate: use std::unique_ptr for origArgv

Pick-to: 6.9
Change-Id: Id03feb55d3c3899aa4fffffdc0b3ee7b0742f9e8
Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
Thiago Macieira 2025-01-13 04:37:51 -08:00
parent f68df05a77
commit 981c2e8b74
2 changed files with 5 additions and 4 deletions

View File

@ -434,8 +434,8 @@ QCoreApplicationPrivate::QCoreApplicationPrivate(int &aargc, char **aargv)
#if defined(Q_OS_WIN)
if (!isArgvModified(argc, argv)) {
origArgc = argc;
origArgv = new char *[argc];
std::copy(argv, argv + argc, QT_MAKE_CHECKED_ARRAY_ITERATOR(origArgv, argc));
origArgv = q20::make_unique_for_overwrite<char *[]>(argc);
std::copy(argv, argv + argc, origArgv.get());
}
#endif // Q_OS_WIN
@ -459,7 +459,6 @@ QCoreApplicationPrivate::~QCoreApplicationPrivate()
cleanupThreadData();
#endif
#if defined(Q_OS_WIN) && !defined(QT_BOOTSTRAPPED)
delete [] origArgv;
cleanupDebuggingConsole();
#endif
QCoreApplicationPrivate::clearApplicationFilePath();

View File

@ -125,8 +125,10 @@ public:
int &argc;
char **argv;
#if defined(Q_OS_WIN)
// store unmodified arguments for QCoreApplication::arguments()
int origArgc = 0;
char **origArgv = nullptr; // store unmodified arguments for QCoreApplication::arguments()
std::unique_ptr<char *[]> origArgv;
bool consoleAllocated = false;
#endif
void appendApplicationPathToLibraryPaths(void);