summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2019-09-03 11:55:32 -0700
committerJeremy Evans <code@jeremyevans.net>2019-09-05 17:47:12 -0700
commite3cb3e11af4323aba002a84044375180dd24248c (patch)
treea2809be9592b3dcf71ec7bbdf49ca3fc1bb40779
parentfd2ef1a9bfa489842472d183ea10b6fd9838c460 (diff)
Set VM_FRAME_FLAG_CFRAME_KW if kw_splat set in vm_yield_with_cfunc
-rw-r--r--vm_insnhelper.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index ec5b874b88..2d10b58d00 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -2866,11 +2866,10 @@ vm_yield_with_cfunc(rb_execution_context_t *ec,
}
blockarg = rb_vm_bh_to_procval(ec, block_handler);
- /* XXX: Set VM_FRAME_FLAG_CFRAME_KW https://github.com/ruby/ruby/pull/2422 */
vm_push_frame(ec, (const rb_iseq_t *)captured->code.ifunc,
VM_FRAME_MAGIC_IFUNC | VM_FRAME_FLAG_CFRAME |
- (me ? VM_FRAME_FLAG_BMETHOD : 0),
+ (me ? VM_FRAME_FLAG_BMETHOD : 0) | (kw_splat ? VM_FRAME_FLAG_CFRAME_KW : 0),
self,
VM_GUARDED_PREV_EP(captured->ep),
(VALUE)me,