diff options
author | Maurice Kalinowski <maurice.kalinowski@digia.com> | 2014-05-23 17:16:54 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-03 09:55:30 +0200 |
commit | 6b9a9a01e289381ea915ac43595c6c5da0db73b4 (patch) | |
tree | 68f460051ea2e42af8b5d6c7331ad5218cc1e68c /src/winmain/qtmain_winrt.cpp | |
parent | 69e2d3b3e96bb1fa553acb5cd867267d1596c314 (diff) |
remove HSTRING instances
HSTRING needs to be released or handles will be leaked.
Instead use HString which takes care of resource management
on its own.
Task-Number: QTBUG-38115
Change-Id: I2c767776c1f22f45acd8dd77b693f30d63d894b9
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Diffstat (limited to 'src/winmain/qtmain_winrt.cpp')
-rw-r--r-- | src/winmain/qtmain_winrt.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/winmain/qtmain_winrt.cpp b/src/winmain/qtmain_winrt.cpp index eef23130f9..bcb3445bcd 100644 --- a/src/winmain/qtmain_winrt.cpp +++ b/src/winmain/qtmain_winrt.cpp @@ -74,6 +74,7 @@ extern "C" { using namespace ABI::Windows::ApplicationModel; using namespace ABI::Windows::Foundation; using namespace Microsoft::WRL; +using namespace Microsoft::WRL::Wrappers; #define qHString(x) Wrappers::HString::MakeReference(x).Get() #define CoreApplicationClass RuntimeClass_Windows_ApplicationModel_Core_CoreApplication @@ -186,11 +187,11 @@ private: for (int i = m_argc; i < m_argv.size(); ++i) delete[] m_argv[i]; m_argv.resize(m_argc); - HSTRING arguments; - launchArgs->get_Arguments(&arguments); - if (arguments) { + HString arguments; + launchArgs->get_Arguments(arguments.GetAddressOf()); + if (arguments.IsValid()) { foreach (const QByteArray &arg, QString::fromWCharArray( - WindowsGetStringRawBuffer(arguments, nullptr)).toLocal8Bit().split(' ')) { + arguments.GetRawBuffer(nullptr)).toLocal8Bit().split(' ')) { m_argv.append(qstrdup(arg.constData())); } } |