From 62d3a010d430fadf99268498bee3cff3e16c608f Mon Sep 17 00:00:00 2001
From: Graham Madarasz <graham@lindenlab.com>
Date: Mon, 3 Jun 2013 18:11:08 -0700
Subject: [PATCH] BUG-2707 disable sites calling OsOutputDebugString directly
 to identify which is tossing our errant exception

---
 indra/llcommon/llerror.cpp                   | 2 ++
 indra/llui/llxuiparser.cpp                   | 8 ++++----
 indra/media_plugins/winmmshim/winmm_shim.cpp | 4 ++++
 3 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 9b0141eb767..2a037fcad92 100755
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -201,10 +201,12 @@ namespace {
 		virtual void recordMessage(LLError::ELevel level,
 								   const std::string& message)
 		{
+#if BUG_2707_HUNT
 			llutf16string utf16str =
 				wstring_to_utf16str(utf8str_to_wstring(message));
 			utf16str += '\n';
 			OutputDebugString(utf16str.c_str());
+#endif
 		}
 	};
 #endif
diff --git a/indra/llui/llxuiparser.cpp b/indra/llui/llxuiparser.cpp
index 3ad5ad7d425..2f0e50fdaf3 100755
--- a/indra/llui/llxuiparser.cpp
+++ b/indra/llui/llxuiparser.cpp
@@ -1308,7 +1308,7 @@ bool LLXUIParser::writeSDValue(Parser& parser, const void* val_ptr, name_stack_t
 
 void LLXUIParser::parserWarning(const std::string& message)
 {
-#ifdef LL_WINDOWS
+#ifdef LL_WINDOWS && BUG_2707_HUNT
 	// use Visual Studo friendly formatting of output message for easy access to originating xml
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
 	utf16str += '\n';
@@ -1320,7 +1320,7 @@ void LLXUIParser::parserWarning(const std::string& message)
 
 void LLXUIParser::parserError(const std::string& message)
 {
-#ifdef LL_WINDOWS
+#ifdef LL_WINDOWS && BUG_2707_HUNT
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), mCurReadNode->getLineNumber(), message.c_str()).c_str());
 	utf16str += '\n';
 	OutputDebugString(utf16str.c_str());
@@ -1639,7 +1639,7 @@ bool LLSimpleXUIParser::processText()
 
 void LLSimpleXUIParser::parserWarning(const std::string& message)
 {
-#ifdef LL_WINDOWS
+#ifdef LL_WINDOWS && BUG_2707_HUNT
 	// use Visual Studo friendly formatting of output message for easy access to originating xml
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
 	utf16str += '\n';
@@ -1651,7 +1651,7 @@ void LLSimpleXUIParser::parserWarning(const std::string& message)
 
 void LLSimpleXUIParser::parserError(const std::string& message)
 {
-#ifdef LL_WINDOWS
+#ifdef LL_WINDOWS && BUG_2707_HUNT
 	llutf16string utf16str = utf8str_to_utf16str(llformat("%s(%d):\t%s", mCurFileName.c_str(), LINE_NUMBER_HERE, message.c_str()).c_str());
 	utf16str += '\n';
 	OutputDebugString(utf16str.c_str());
diff --git a/indra/media_plugins/winmmshim/winmm_shim.cpp b/indra/media_plugins/winmmshim/winmm_shim.cpp
index 47a1e5c0187..aeadb53f31f 100755
--- a/indra/media_plugins/winmmshim/winmm_shim.cpp
+++ b/indra/media_plugins/winmmshim/winmm_shim.cpp
@@ -61,12 +61,16 @@ void ll_winmm_shim_initialize(){
 		{	// we have a dll, let's get out pointers!
 			initialized = true;
 			init_function_pointers(winmm_handle);
+#if BUG_2707_HUNT
 			::OutputDebugStringA("WINMM_SHIM.DLL: real winmm.dll initialized successfully\n");
+#endif
 		}
 		else
 		{
 			// failed to initialize real winmm.dll
+#if BUG_2707_HUNT
 			::OutputDebugStringA("WINMM_SHIM.DLL: Failed to initialize real winmm.dll\n");
+#endif
 		}
 	}
 	LeaveCriticalSection(&sCriticalSection);
-- 
GitLab