summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-13 09:34:43 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-02-13 09:34:43 +0000
commit8cdac548c54ad3a1df70da47ad820f3afc96e2cb (patch)
tree79f907c36e37ac023b246af806b5133d5c125529
parent66652bb6322ed7ba17c1e8485aee2701e9cadded (diff)
vm_insnhelper.c: rb_autoloading_value flag
* vm_insnhelper.c (vm_get_ev_const): add flag argument of `rb_autoloading_value`. * constant.h (rb_autoloading_value): moved the declaration from vm_core.h for `rb_const_flag_t`. [ruby-core:85516] [Bug #14469] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--constant.h1
-rw-r--r--vm_core.h2
-rw-r--r--vm_insnhelper.c2
3 files changed, 2 insertions, 3 deletions
diff --git a/constant.h b/constant.h
index 76b59fa047..fcccf07384 100644
--- a/constant.h
+++ b/constant.h
@@ -46,5 +46,6 @@ int rb_public_const_defined(VALUE klass, ID id);
int rb_public_const_defined_at(VALUE klass, ID id);
int rb_public_const_defined_from(VALUE klass, ID id);
rb_const_entry_t *rb_const_lookup(VALUE klass, ID id);
+int rb_autoloading_value(VALUE mod, ID id, VALUE *value, rb_const_flag_t *flag);
#endif /* CONSTANT_H */
diff --git a/vm_core.h b/vm_core.h
index b7eebf0061..0a62b66db8 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -1592,8 +1592,6 @@ void rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE
void rb_gc_mark_machine_stack(const rb_execution_context_t *ec);
-int rb_autoloading_value(VALUE mod, ID id, VALUE* value);
-
void rb_vm_rewrite_cref(rb_cref_t *node, VALUE old_klass, VALUE new_klass, rb_cref_t **new_cref_ptr);
const rb_callable_method_entry_t *rb_vm_frame_method_entry(const rb_control_frame_t *cfp);
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 415070f852..5567c6b20f 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -841,7 +841,7 @@ vm_get_ev_const(rb_execution_context_t *ec, VALUE orig_klass, ID id, int is_defi
if (am == klass) break;
am = klass;
if (is_defined) return 1;
- if (rb_autoloading_value(klass, id, &av)) return av;
+ if (rb_autoloading_value(klass, id, &av, NULL)) return av;
rb_autoload_load(klass, id);
goto search_continue;
}