From 3e6b6dc7b8ae20133c6e5e77323bb6d7af4674e9 Mon Sep 17 00:00:00 2001 From: Andrew Nelless Date: Fri, 12 May 2017 01:41:17 +0100 Subject: [PATCH] #6037 Remove crazy LoadString wrapper --- src/lib/platform/MSWindowsUtil.cpp | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-) diff --git a/src/lib/platform/MSWindowsUtil.cpp b/src/lib/platform/MSWindowsUtil.cpp index 811c6be2..7ce6e2dc 100644 --- a/src/lib/platform/MSWindowsUtil.cpp +++ b/src/lib/platform/MSWindowsUtil.cpp @@ -29,31 +29,14 @@ String MSWindowsUtil::getString(HINSTANCE instance, DWORD id) { - char buffer[1024]; - int size = static_cast(sizeof(buffer) / sizeof(buffer[0])); - char* msg = buffer; + char* msg = NULL; + int n = LoadString(instance, id, reinterpret_cast(&msg), 0); - // load string - int n = LoadString(instance, id, msg, size); - msg[n] = '\0'; - if (n < size) { - return msg; + if (n <= 0) { + return String(); } - // not enough buffer space. keep trying larger buffers until - // we get the whole string. - msg = NULL; - do { - size <<= 1; - delete[] msg; - char* msg = new char[size]; - n = LoadString(instance, id, msg, size); - } while (n == size); - msg[n] = '\0'; - - String result(msg); - delete[] msg; - return result; + return String (msg, n); } String