[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]