summaryrefslogtreecommitdiffstats
path: root/enum.c
diff options
context:
space:
mode:
authordavidflanagan <davidflanagan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-01 05:53:52 +0000
committerdavidflanagan <davidflanagan@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-01 05:53:52 +0000
commit07f434be3b80628e5f761f52903814fe405e0ed2 (patch)
treec3109a1d0a2e13716b5a362ad7e235946834ddda /enum.c
parenta1c681838b709aeba6580ec932049625399f5d3d (diff)
downloadruby-07f434be3b80628e5f761f52903814fe405e0ed2.tar.gz
ruby-07f434be3b80628e5f761f52903814fe405e0ed2.tar.xz
ruby-07f434be3b80628e5f761f52903814fe405e0ed2.zip
* enum.c (take_while_i, drop_while_i) add RTEST to handle nil return
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'enum.c')
-rw-r--r--enum.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/enum.c b/enum.c
index 968250c32..5beb900d4 100644
--- a/enum.c
+++ b/enum.c
@@ -1435,7 +1435,7 @@ enum_take(VALUE obj, VALUE n)
static VALUE
take_while_i(VALUE i, VALUE *ary)
{
- if (!rb_yield(i)) rb_iter_break();
+ if (!RTEST(rb_yield(i))) rb_iter_break();
rb_ary_push(*ary, i);
return Qnil;
}
@@ -1501,7 +1501,7 @@ enum_drop(VALUE obj, VALUE n)
static VALUE
drop_while_i(VALUE i, VALUE *args)
{
- if (!args[1] && !rb_yield(i)) {
+ if (!args[1] && !RTEST(rb_yield(i))) {
args[1] = Qtrue;
}
if (args[1]) {