* thread_win32.c (w32_error): should get error no only once, because

the result of the second getting will indicate the error of the
  first FormatMessage() call.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2010-10-27 06:08:37 +00:00
parent c265d57595
commit f30e1877b2
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,9 @@
Wed Oct 27 15:07:19 2010 NAKAMURA Usaku <usa@ruby-lang.org>
* thread_win32.c (w32_error): should get error no only once, because
the result of the second getting will indicate the error of the
first FormatMessage() call.
Wed Oct 27 13:51:25 2010 NAKAMURA Usaku <usa@ruby-lang.org>
* test/ruby/test_io.rb (TestIO#pipe): need to propagate exceptions

View File

@ -67,18 +67,19 @@ static void
w32_error(const char *func)
{
LPVOID lpMsgBuf;
DWORD err = GetLastError();
if (FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
err,
MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
(LPTSTR) & lpMsgBuf, 0, NULL) == 0)
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) & lpMsgBuf, 0, NULL);
rb_bug("%s: %s", func, (char*)lpMsgBuf);