From 2fdf83ba3ea4d29c93dab9d6c3396ff4f1ca4dac Mon Sep 17 00:00:00 2001 From: naruse Date: Sun, 18 Feb 2018 14:25:43 +0000 Subject: merge revision(s) 61591: [Backport #14312] iseq.c (rb_iseq_new_with_opt): handle the case where node is imemo_func git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- iseq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'iseq.c') diff --git a/iseq.c b/iseq.c index ac92237f38..10cb6b9b5c 100644 --- a/iseq.c +++ b/iseq.c @@ -517,9 +517,11 @@ rb_iseq_new_with_opt(const NODE *node, VALUE name, VALUE path, VALUE realpath, { /* TODO: argument check */ rb_iseq_t *iseq = iseq_alloc(); + const rb_code_range_t *code_range = NULL; if (!option) option = &COMPILE_OPTION_DEFAULT; - prepare_iseq_build(iseq, name, path, realpath, first_lineno, node ? &node->nd_loc : NULL, parent, type, option); + if (node && !imemo_type_p((VALUE)node, imemo_ifunc)) code_range = &node->nd_loc; + prepare_iseq_build(iseq, name, path, realpath, first_lineno, code_range, parent, type, option); rb_iseq_compile_node(iseq, node); finish_iseq_build(iseq); -- cgit v1.2.3