diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2018-10-25 11:24:06 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2020-03-25 16:12:46 -0400 |
commit | f71c71fe42756e18e41c7e6ee531f1acc72815ca (patch) | |
tree | 1d2423e7288d9594d76723a9bf7eae87e3d48152 | |
parent | 30fa24966463a2c10c620b782ac5c8d1b8303ceb (diff) |
DRTVWR-476: Fix _open_osfhandle() param from long to intptr_t.
The Microsoft _open_osfhandle() opens a HANDLE to produce a C-style int file
descriptor suitable for passing to _fdopen(). We used to cast the HANDLEs
returned by GetStdHandle() to long to pass to _open_osfhandle(). Since HANDLE
is an alias for a pointer, this no longer works.
Fortunately _open_osfhandle() now accepts intptr_t, so we can change the
relevant GetStdHandle() calls. (But why not simply accept HANDLE in the first
place?)
-rw-r--r-- | indra/newview/llappviewerwin32.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index d208e135bb..9a8a5f16bb 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -504,7 +504,7 @@ const S32 MAX_CONSOLE_LINES = 500; static bool create_console() { int h_con_handle; - long l_std_handle; + intptr_t l_std_handle; CONSOLE_SCREEN_BUFFER_INFO coninfo; FILE *fp; @@ -518,7 +518,7 @@ static bool create_console() SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); // redirect unbuffered STDOUT to the console - l_std_handle = (long)GetStdHandle(STD_OUTPUT_HANDLE); + l_std_handle = reinterpret_cast<decltype(l_std_handle)>(GetStdHandle(STD_OUTPUT_HANDLE)); h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); if (h_con_handle == -1) { @@ -532,7 +532,7 @@ static bool create_console() } // redirect unbuffered STDIN to the console - l_std_handle = (long)GetStdHandle(STD_INPUT_HANDLE); + l_std_handle = reinterpret_cast<decltype(l_std_handle)>(GetStdHandle(STD_INPUT_HANDLE)); h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); if (h_con_handle == -1) { @@ -546,7 +546,7 @@ static bool create_console() } // redirect unbuffered STDERR to the console - l_std_handle = (long)GetStdHandle(STD_ERROR_HANDLE); + l_std_handle = reinterpret_cast<decltype(l_std_handle)>(GetStdHandle(STD_ERROR_HANDLE)); h_con_handle = _open_osfhandle(l_std_handle, _O_TEXT); if (h_con_handle == -1) { |