зеркало из https://github.com/github/ruby.git
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
This commit is contained in:
Родитель
66652bb632
Коммит
8cdac548c5
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче