diff options
author | Stinson Linden <stinson@lindenlab.com> | 2014-04-23 18:13:12 +0100 |
---|---|---|
committer | Stinson Linden <stinson@lindenlab.com> | 2014-04-23 18:13:12 +0100 |
commit | 5969c3d04f501d1c330674153702d32051daaf67 (patch) | |
tree | 395e0c274f4a3f1a97dc657e0b38834dfbd1936e /indra/newview/llappviewerwin32.cpp | |
parent | 5e225213f6bdb7b4ca97abfef99b2249a1f88638 (diff) |
MAINT-4009: Freeing the allocated console during shutdown.
Diffstat (limited to 'indra/newview/llappviewerwin32.cpp')
-rw-r--r-- | indra/newview/llappviewerwin32.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index a1b4fd1035..57fb84bbf1 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -438,7 +438,7 @@ void LLAppViewerWin32::disableWinErrorReporting() const S32 MAX_CONSOLE_LINES = 500; -void create_console() +static bool create_console() { int h_con_handle; long l_std_handle; @@ -447,7 +447,7 @@ void create_console() FILE *fp; // allocate a console for this app - AllocConsole(); + const bool isConsoleAllocated = AllocConsole(); // set the screen buffer to be big enough to let us scroll text GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); @@ -495,10 +495,13 @@ void create_console() *stderr = *fp; setvbuf( stderr, NULL, _IONBF, 0 ); } + + return isConsoleAllocated; } LLAppViewerWin32::LLAppViewerWin32(const char* cmd_line) : - mCmdLine(cmd_line) + mCmdLine(cmd_line), + mIsConsoleAllocated(false) { } @@ -546,6 +549,12 @@ bool LLAppViewerWin32::cleanup() LLWinDebug::instance().cleanup(); #endif + if (mIsConsoleAllocated) + { + FreeConsole(); + mIsConsoleAllocated = false; + } + return result; } @@ -557,7 +566,7 @@ void LLAppViewerWin32::initLoggingAndGetLastDuration() void LLAppViewerWin32::initConsole() { // pop up debug console - create_console(); + mIsConsoleAllocated = create_console(); return LLAppViewer::initConsole(); } |