diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | enum.c | 4 |
2 files changed, 5 insertions, 2 deletions
@@ -1,3 +1,6 @@ +Thu Nov 1 14:51:39 UTC 2007 David Flanagan <davidflanagan@ruby-lang.org> + * enum.c (take_while_i, drop_while_i) add RTEST to handle nil return + Thu Nov 1 02:12:50 2007 NAKAMURA Usaku <usa@ruby-lang.org> * common.mk (prereq): update the path of prelude.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]) { |