From 6eb77404724eaca3c58c45d76cd5ab36fea2be4a Mon Sep 17 00:00:00 2001 From: sorah Date: Sat, 9 Apr 2011 15:10:03 +0000 Subject: [PATCH] * ext/stringio/stringio.c (strio_each, strio_readlines): Use `NUM2LONG` instead of `FIX2INT`. Fixes [ruby-dev:43395]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ ext/stringio/stringio.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 302039847a..2e3f9afffc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Apr 9 23:31:47 2011 Shota Fukumori + + * ext/stringio/stringio.c (strio_each, strio_readlines): + Use `NUM2LONG` instead of `FIX2INT`. Fixes [ruby-dev:43395]. + Sat Apr 9 23:22:27 2011 Shota Fukumori * ext/stringio/stringio.c (strio_each): diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 1bb5e0f573..9b446aebe8 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -1069,8 +1069,8 @@ strio_each(int argc, VALUE *argv, VALUE self) RETURN_ENUMERATOR(self, argc, argv); - if(argc > 0 && TYPE(argv[argc-1]) == T_FIXNUM && - FIX2INT(argv[argc-1]) == 0) { + if(argc > 0 && !NIL_P(argv[argc-1]) && NIL_P(rb_check_string_type(argv[argc-1])) && + NUM2LONG(argv[argc-1]) == 0) { rb_raise(rb_eArgError, "invalid limit: 0 for each_line"); } @@ -1094,8 +1094,8 @@ strio_readlines(int argc, VALUE *argv, VALUE self) struct StringIO *ptr = StringIO(self); VALUE ary = rb_ary_new(), line; - if(argc > 0 && TYPE(argv[argc-1]) == T_FIXNUM && - FIX2INT(argv[argc-1]) == 0) { + if(argc > 0 && !NIL_P(argv[argc-1]) && NIL_P(rb_check_string_type(argv[argc-1])) && + NUM2LONG(argv[argc-1]) == 0) { rb_raise(rb_eArgError, "invalid limit: 0 for readlines"); }