ruby-changes:13839
From: nobu <ko1@a...>
Date: Wed, 4 Nov 2009 08:26:28 +0900 (JST)
Subject: [ruby-changes:13839] Ruby:r25639 (trunk): * dir.c (dir_check): moved other checks from GetDIR.
nobu 2009-11-04 08:26:02 +0900 (Wed, 04 Nov 2009) New Revision: 25639 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25639 Log: * dir.c (dir_check): moved other checks from GetDIR. Modified files: trunk/ChangeLog trunk/dir.c Index: ChangeLog =================================================================== --- ChangeLog (revision 25638) +++ ChangeLog (revision 25639) @@ -1,5 +1,7 @@ -Wed Nov 4 08:21:00 2009 Nobuyoshi Nakada <nobu@r...> +Wed Nov 4 08:26:00 2009 Nobuyoshi Nakada <nobu@r...> + * dir.c (dir_check): moved other checks from GetDIR. + * dir.c (GetDIR): fixed a variable name. Wed Nov 4 08:19:31 2009 Nobuyoshi Nakada <nobu@r...> Index: dir.c =================================================================== --- dir.c (revision 25638) +++ dir.c (revision 25639) @@ -447,19 +447,19 @@ rb_raise(rb_eIOError, "closed directory"); } -static void +static struct dir_data * dir_check(VALUE dir) { + struct dir_data *dirp; if (!OBJ_UNTRUSTED(dir) && rb_safe_level() >= 4) rb_raise(rb_eSecurityError, "Insecure: operation on trusted Dir"); rb_check_frozen(dir); + dirp = rb_check_typeddata(dir, &dir_data_type); + if (!dirp->dir) dir_closed(); + return dirp; } -#define GetDIR(obj, dirp) do {\ - dir_check(obj); \ - TypedData_Get_Struct(obj, struct dir_data, &dir_data_type, dirp); \ - if (dirp->dir == NULL) dir_closed();\ -} while (0) +#define GetDIR(obj, dirp) (dirp = dir_check(obj)) /* -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/