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

ruby-changes:21663

From: kosaki <ko1@a...>
Date: Sat, 12 Nov 2011 11:07:20 +0900 (JST)
Subject: [ruby-changes:21663] kosaki:r33711 (trunk): * io.c (+ioctl_narg_len) new helper function.

kosaki	2011-11-12 11:06:23 +0900 (Sat, 12 Nov 2011)

  New Revision: 33711

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33711

  Log:
    * io.c (+ioctl_narg_len) new helper function.
    * io.c (rb_io_ctl): don't use ioctl specific length check
      if caller is fcntl.

  Modified files:
    trunk/ChangeLog
    trunk/io.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33710)
+++ ChangeLog	(revision 33711)
@@ -1,3 +1,9 @@
+Sat Nov 12 10:52:17 2011  KOSAKI Motohiro  <kosaki.motohiro@g...>
+
+	* io.c (+ioctl_narg_len) new helper function.
+	* io.c (rb_io_ctl): don't use ioctl specific length check
+	  if caller is fcntl.
+
 Fri Nov 11 23:00:46 2011  Tanaka Akira  <akr@f...>
 
 	* ext/dbm/extconf.rb: db_prefix is not required now.
Index: io.c
===================================================================
--- io.c	(revision 33710)
+++ io.c	(revision 33711)
@@ -7909,6 +7909,25 @@
     return retval;
 }
 
+static long
+ioctl_narg_len(int cmd)
+{
+    long len;
+
+#ifdef IOCPARM_MASK
+#ifndef IOCPARM_LEN
+#define IOCPARM_LEN(x)  (((x) >> 16) & IOCPARM_MASK)
+#endif
+#endif
+#ifdef IOCPARM_LEN
+    len = IOCPARM_LEN(cmd);	/* on BSDish systems we're safe */
+#else
+    len = 256;		/* otherwise guess at what's safe */
+#endif
+
+    return len;
+}
+
 static VALUE
 rb_io_ctl(VALUE io, VALUE req, VALUE arg, int io_p)
 {
@@ -7937,16 +7956,11 @@
 	}
 	else {
 	    arg = tmp;
-#ifdef IOCPARM_MASK
-#ifndef IOCPARM_LEN
-#define IOCPARM_LEN(x)  (((x) >> 16) & IOCPARM_MASK)
-#endif
-#endif
-#ifdef IOCPARM_LEN
-	    len = IOCPARM_LEN(cmd);	/* on BSDish systems we're safe */
-#else
-	    len = 256;		/* otherwise guess at what's safe */
-#endif
+
+	    if (io_p)
+		ioctl_narg_len(cmd);
+	    else
+		len = 256;
 	    rb_str_modify(arg);
 
 	    if (len <= RSTRING_LEN(arg)) {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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