diff options
author | Andy Shaw <andy.shaw@digia.com> | 2015-03-16 13:10:27 +0100 |
---|---|---|
committer | Andy Shaw <andy.shaw@digia.com> | 2015-03-16 18:13:24 +0000 |
commit | bb5d287cc3eb68e1e46e5c3eb0a2c3991900354d (patch) | |
tree | 98d252e63594e142d2f6b23c49f221eda7ba7ffa /src/corelib/kernel/qsharedmemory_win.cpp | |
parent | 60ac5957d34b673c8e851c7b5b01b9cc0b1f00d8 (diff) |
Windows: Don't cause a malloc before calling GetLastError()
When creating a string it would cause a malloc which would reset
GetLastError() so we need to ensure that GetLastError() is the first thing
it calls if a Windows API call fails.
Task-number: QTBUG-27765
Change-Id: I5cc4ce59aa1f03a0ec978fe54949a7931a225d52
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/kernel/qsharedmemory_win.cpp')
-rw-r--r-- | src/corelib/kernel/qsharedmemory_win.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/corelib/kernel/qsharedmemory_win.cpp b/src/corelib/kernel/qsharedmemory_win.cpp index 8e094cb458..4d37368b2e 100644 --- a/src/corelib/kernel/qsharedmemory_win.cpp +++ b/src/corelib/kernel/qsharedmemory_win.cpp @@ -47,9 +47,9 @@ QSharedMemoryPrivate::QSharedMemoryPrivate() : QObjectPrivate(), { } -void QSharedMemoryPrivate::setErrorString(const QString &function) +void QSharedMemoryPrivate::setErrorString(QLatin1String function) { - BOOL windowsError = GetLastError(); + DWORD windowsError = GetLastError(); if (windowsError == 0) return; switch (windowsError) { @@ -91,7 +91,7 @@ void QSharedMemoryPrivate::setErrorString(const QString &function) HANDLE QSharedMemoryPrivate::handle() { if (!hand) { - QString function = QLatin1String("QSharedMemory::handle"); + const QLatin1String function("QSharedMemory::handle"); if (nativeKey.isEmpty()) { error = QSharedMemory::KeyError; errorString = QSharedMemory::tr("%1: unable to make key").arg(function); @@ -130,7 +130,7 @@ bool QSharedMemoryPrivate::cleanHandle() bool QSharedMemoryPrivate::create(int size) { - QString function = QLatin1String("QSharedMemory::create"); + const QLatin1String function("QSharedMemory::create"); if (nativeKey.isEmpty()) { error = QSharedMemory::KeyError; errorString = QSharedMemory::tr("%1: key error").arg(function); |