diff --git a/ChangeLog b/ChangeLog index 2c9172913f..551113eb7e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 24 14:23:35 2001 Yukihiro Matsumoto + + * eval.c (rb_yield_0): need argument adjustment for C defined + blocks too. + Tue May 22 17:10:35 2001 K.Kosako * variable.c (rb_alias_variable): should not allow variable diff --git a/eval.c b/eval.c index 651b9b5276..12baccb2d7 100644 --- a/eval.c +++ b/eval.c @@ -3559,6 +3559,13 @@ rb_yield_0(val, self, klass, acheck) POP_TAG(); if (state) goto pop_state; } + else { + /* argument adjust for proc_call etc. */ + if (acheck && val != Qundef && + TYPE(val) == T_ARRAY && RARRAY(val)->len == 1) { + val = RARRAY(val)->ptr[0]; + } + } PUSH_ITER(block->iter); PUSH_TAG(PROT_NONE); diff --git a/version.h b/version.h index d69331729f..b343db5105 100644 --- a/version.h +++ b/version.h @@ -1,4 +1,4 @@ #define RUBY_VERSION "1.6.4" -#define RUBY_RELEASE_DATE "2001-05-22" +#define RUBY_RELEASE_DATE "2001-05-24" #define RUBY_VERSION_CODE 164 -#define RUBY_RELEASE_CODE 20010522 +#define RUBY_RELEASE_CODE 20010524