aboutsummaryrefslogtreecommitdiffstats
path: root/compile.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-10-25 04:37:46 +0900
committerKoichi Sasada <ko1@atdot.net>2019-10-25 04:39:22 +0900
commit58b363bf0d1f31ae9bcbaf301f9abedb99fa90f6 (patch)
treea9d1634272d8ce251cbd5cd9358482c4419c99ab /compile.c
parentd6a2507e494f0fffca375c9e2eede38b6a777874 (diff)
downloadruby-58b363bf0d1f31ae9bcbaf301f9abedb99fa90f6.tar.gz
respect `param.flags.ruby2_keywords` at to_binary.
`param.flags.ruby2_keywords` is not store/load correctly at to_binary so restore this flag correctly.
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/compile.c b/compile.c
index 278736d1b1..72b60c1144 100644
--- a/compile.c
+++ b/compile.c
@@ -10147,7 +10147,8 @@ ibf_dump_iseq_each(struct ibf_dump *dump, const rb_iseq_t *iseq)
(body->param.flags.has_kwrest << 5) |
(body->param.flags.has_block << 6) |
(body->param.flags.ambiguous_param0 << 7) |
- (body->param.flags.accepts_no_kwarg << 8);
+ (body->param.flags.accepts_no_kwarg << 8) |
+ (body->param.flags.ruby2_keywords << 9);
#if IBF_ISEQ_ENABLE_LOCAL_BUFFER
# define IBF_BODY_OFFSET(x) (x)
@@ -10313,6 +10314,7 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
load_body->param.flags.has_block = (param_flags >> 6) & 1;
load_body->param.flags.ambiguous_param0 = (param_flags >> 7) & 1;
load_body->param.flags.accepts_no_kwarg = (param_flags >> 8) & 1;
+ load_body->param.flags.ruby2_keywords = (param_flags >> 9) & 1;
load_body->param.size = param_size;
load_body->param.lead_num = param_lead_num;
load_body->param.opt_num = param_opt_num;