ruby-changes:18643
From: kosaki <ko1@a...>
Date: Thu, 27 Jan 2011 18:36:03 +0900 (JST)
Subject: [ruby-changes:18643] Ruby:r30667 (trunk): * file.c (w32_io_info): get rid of too huge alloca().
kosaki 2011-01-27 18:35:56 +0900 (Thu, 27 Jan 2011) New Revision: 30667 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30667 Log: * file.c (w32_io_info): get rid of too huge alloca(). [Bug #4313] [ruby-core:34830] Modified files: trunk/ChangeLog trunk/file.c Index: ChangeLog =================================================================== --- ChangeLog (revision 30666) +++ ChangeLog (revision 30667) @@ -1,3 +1,8 @@ +Thu Jan 27 18:34:58 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * file.c (w32_io_info): get rid of too huge alloca(). + [Bug #4313] [ruby-core:34830] + Thu Jan 27 18:19:51 2011 KOSAKI Motohiro <kosaki.motohiro@g...> * win32/win32.c (wstati64): get rid of too huge alloca(). Index: file.c =================================================================== --- file.c (revision 30666) +++ file.c (revision 30667) @@ -835,15 +835,18 @@ VALUE tmp; WCHAR *ptr; int len; + VALUE v; + FilePathValue(*file); tmp = rb_str_encode_ospath(*file); len = MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, NULL, 0); - ptr = ALLOCA_N(WCHAR, len); + ptr = ALLOCV_N(WCHAR, v, len); MultiByteToWideChar(CP_UTF8, 0, RSTRING_PTR(tmp), -1, ptr, len); f = CreateFileW(ptr, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, rb_w32_iswin95() ? 0 : FILE_FLAG_BACKUP_SEMANTICS, NULL); + ALLOCV_END(v); if (f == INVALID_HANDLE_VALUE) return f; ret = f; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/