diff options
-rw-r--r-- | compile.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -6864,7 +6864,7 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords) #define SYM(s) ID2SYM(rb_intern(#s)) (void)int_param(&keyword->bits_start, params, SYM(kwbits)); i = keyword->bits_start - keyword->num; - ids = (VALUE *)&iseq->body->local_table[i]; + ids = (ID *)&iseq->body->local_table[i]; #undef SYM /* required args */ @@ -6881,6 +6881,7 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords) default_values: /* note: we intentionally preserve `i' from previous loop */ default_len = len - i; if (default_len == 0) { + keyword->table = ids; return keyword; } |