Don't rely on argv being NULL-terminated under MSW

Since the changes of c9a458bfe8 ("Use Win32
::CommandLineToArgvW() to tokenize command line"), this is not guaranteed any
more as this Win32 function doesn't necessarily ensure it under older MSW
versions such as XP.

Just use "argc" explicitly instead of relying on this in wxCmdLineArgsArray to
fix crashing under XP.
This commit is contained in:
Vadim Zeitlin
2017-04-14 19:00:44 +02:00
parent ed577b7099
commit 70a499f635
3 changed files with 6 additions and 9 deletions

View File

@@ -31,19 +31,17 @@ public:
wxCmdLineArgsArray() { m_argsA = NULL; m_argsW = NULL; }
template <typename T>
wxCmdLineArgsArray& operator=(T **argv)
void Init(int argc, T **argv)
{
FreeArgs();
m_args.clear();
m_args.reserve(argc);
if ( argv )
for ( int i = 0; i < argc; i++ )
{
while ( *argv )
m_args.push_back(*argv++);
m_args.push_back(argv[i]);
}
return *this;
}
operator char**() const