From 2409ed7d48e8c0e34e79d8b750fe3e5432a0d3f9 Mon Sep 17 00:00:00 2001
From: Thiago Macieira <thiago.macieira@intel.com>
Date: Fri, 7 Nov 2014 15:13:52 -0800
Subject: [PATCH] Fix placement of QT_{BEGIN,END}_NAMESPACE in
 qfunctions_winrt.h

Those functions weren't getting properly namespaced. Even if we're
testing WinRT namespaced builds, it wouldn't catch this mistake: those
functions would simply all be in the global namespace. I guess we don't
have a "namespace cleanliness" test.

Change-Id: I2d3d09dc66dad476563dbf51c171683be155ebfd
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
---
 src/corelib/kernel/qfunctions_winrt.cpp |  4 +++-
 src/corelib/kernel/qfunctions_winrt.h   | 25 ++++++++++++++-----------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/corelib/kernel/qfunctions_winrt.cpp b/src/corelib/kernel/qfunctions_winrt.cpp
index 84e7b5688f1..60faead1224 100644
--- a/src/corelib/kernel/qfunctions_winrt.cpp
+++ b/src/corelib/kernel/qfunctions_winrt.cpp
@@ -37,7 +37,7 @@
 #include "qbytearray.h"
 #include "qhash.h"
 
-QT_USE_NAMESPACE
+QT_BEGIN_NAMESPACE
 
 // Environment ------------------------------------------------------
 inline QHash<QByteArray, QByteArray> &qt_app_environment()
@@ -94,4 +94,6 @@ void qt_winrt__tzset()
 {
 }
 
+QT_END_NAMESPACE
+
 #endif // Q_OS_WINRT
diff --git a/src/corelib/kernel/qfunctions_winrt.h b/src/corelib/kernel/qfunctions_winrt.h
index c8e082795e3..2bec1fc2ff6 100644
--- a/src/corelib/kernel/qfunctions_winrt.h
+++ b/src/corelib/kernel/qfunctions_winrt.h
@@ -64,15 +64,14 @@ QT_BEGIN_NAMESPACE
 #ifdef QT_BUILD_CORE_LIB
 #endif
 
-QT_END_NAMESPACE
-
-
 // Environment ------------------------------------------------------
 errno_t qt_winrt_getenv_s(size_t*, char*, size_t, const char*);
 errno_t qt_winrt__putenv_s(const char*, const char*);
 void qt_winrt_tzset();
 void qt_winrt__tzset();
 
+QT_END_NAMESPACE
+
 // As Windows Runtime lacks some standard functions used in Qt, these got
 // reimplemented. Other projects do this as well. Inline functions are used
 // that there is a central place to disable functions for newer versions if
@@ -85,42 +84,42 @@ void qt_winrt__tzset();
 #define generate_inline_return_func0(funcname, returntype) \
         inline returntype funcname() \
         { \
-            return qt_winrt_##funcname(); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(); \
         }
 #define generate_inline_return_func1(funcname, returntype, param1) \
         inline returntype funcname(param1 p1) \
         { \
-            return qt_winrt_##funcname(p1); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1); \
         }
 #define generate_inline_return_func2(funcname, returntype, param1, param2) \
         inline returntype funcname(param1 p1, param2 p2) \
         { \
-            return qt_winrt_##funcname(p1,  p2); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2); \
         }
 #define generate_inline_return_func3(funcname, returntype, param1, param2, param3) \
         inline returntype funcname(param1 p1, param2 p2, param3 p3) \
         { \
-            return qt_winrt_##funcname(p1,  p2, p3); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2, p3); \
         }
 #define generate_inline_return_func4(funcname, returntype, param1, param2, param3, param4) \
         inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4) \
         { \
-            return qt_winrt_##funcname(p1,  p2, p3, p4); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2, p3, p4); \
         }
 #define generate_inline_return_func5(funcname, returntype, param1, param2, param3, param4, param5) \
         inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5) \
         { \
-            return qt_winrt_##funcname(p1,  p2, p3, p4, p5); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2, p3, p4, p5); \
         }
 #define generate_inline_return_func6(funcname, returntype, param1, param2, param3, param4, param5, param6) \
         inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6) \
         { \
-            return qt_winrt_##funcname(p1,  p2, p3, p4, p5, p6); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2, p3, p4, p5, p6); \
         }
 #define generate_inline_return_func7(funcname, returntype, param1, param2, param3, param4, param5, param6, param7) \
         inline returntype funcname(param1 p1, param2 p2, param3 p3, param4 p4, param5 p5, param6 p6, param7 p7) \
         { \
-            return qt_winrt_##funcname(p1,  p2, p3, p4, p5, p6, p7); \
+            return QT_PREPEND_NAMESPACE(qt_winrt_##funcname)(p1,  p2, p3, p4, p5, p6, p7); \
         }
 
 typedef unsigned (__stdcall *StartAdressExFunc)(void *);
@@ -132,6 +131,8 @@ generate_inline_return_func2(_putenv_s, errno_t, const char *, const char *)
 generate_inline_return_func0(tzset, void)
 generate_inline_return_func0(_tzset, void)
 
+QT_BEGIN_NAMESPACE
+
 namespace Microsoft { namespace WRL { template <typename T> class ComPtr; } }
 
 namespace QWinRTFunctions {
@@ -205,6 +206,8 @@ static inline HRESULT await(const Microsoft::WRL::ComPtr<T> &asyncOp, U *results
 
 } // QWinRTFunctions
 
+QT_END_NAMESPACE
+
 #endif // Q_OS_WINRT
 
 #endif // Q_OS_WIN
-- 
GitLab