Ruby  2.0.0p648(2015-12-16revision53162)
Data Structures | Macros | Functions | Variables
vm_method.c File Reference

Go to the source code of this file.

Data Structures

struct  cache_entry
 

Macros

#define CACHE_SIZE   0x800
 
#define CACHE_MASK   0x7ff
 
#define EXPR1(c, m)   ((((c)>>3)^(m))&CACHE_MASK)
 
#define NOEX_NOREDEF   0
 
#define ruby_running   (GET_VM()->running)
 
#define CALL_METHOD_HOOK(klass, hook, mid)
 
#define UNDEF_ALLOC_FUNC   ((rb_alloc_func_t)-1)
 
#define VISI_CHECK(x, f)   (((x)&NOEX_MASK) == (f))
 
#define rb_intern(str)   rb_intern_const(str)
 
#define REPLICATE_METHOD(klass, id, noex)
 

Functions

static void rb_vm_check_redefinition_opt_method (const rb_method_entry_t *me, VALUE klass)
 
static void vm_clear_global_method_cache (void)
 
void rb_clear_cache (void)
 
static void rb_clear_cache_for_undef (VALUE klass, ID id)
 
static void rb_clear_cache_by_id (ID id)
 
void rb_clear_cache_by_class (VALUE klass)
 
VALUE rb_f_notimplement (int argc, VALUE *argv, VALUE obj)
 
static void rb_define_notimplement_method_id (VALUE mod, ID id, rb_method_flag_t noex)
 
void rb_add_method_cfunc (VALUE klass, ID mid, VALUE(*func)(ANYARGS), int argc, rb_method_flag_t noex)
 
void rb_unlink_method_entry (rb_method_entry_t *me)
 
void rb_gc_mark_unlinked_live_method_entries (void *pvm)
 
void rb_sweep_method_entry (void *pvm)
 
static void release_method_definition (rb_method_definition_t *def)
 
void rb_free_method_entry (rb_method_entry_t *me)
 
static rb_method_entry_tsearch_method (VALUE klass, ID id, VALUE *defined_class_ptr)
 
static int rb_method_definition_eq (const rb_method_definition_t *d1, const rb_method_definition_t *d2)
 
static rb_method_entry_tlookup_method_table (VALUE klass, ID id)
 
static void make_method_entry_refined (rb_method_entry_t *me)
 
void rb_add_refined_method_entry (VALUE refined_class, ID mid)
 
static rb_method_entry_trb_method_entry_make (VALUE klass, ID mid, rb_method_type_t type, rb_method_definition_t *def, rb_method_flag_t noex, VALUE defined_class)
 
static void method_added (VALUE klass, ID mid)
 
static void setup_method_cfunc_struct (rb_method_cfunc_t *cfunc, VALUE(*func)(), int argc)
 
rb_method_entry_trb_add_method (VALUE klass, ID mid, rb_method_type_t type, void *opts, rb_method_flag_t noex)
 
static rb_method_entry_tmethod_entry_set (VALUE klass, ID mid, const rb_method_entry_t *me, rb_method_flag_t noex, VALUE defined_class)
 
rb_method_entry_trb_method_entry_set (VALUE klass, ID mid, const rb_method_entry_t *me, rb_method_flag_t noex)
 
void rb_define_alloc_func (VALUE klass, VALUE(*func)(VALUE))
 
void rb_undef_alloc_func (VALUE klass)
 
rb_alloc_func_t rb_get_alloc_func (VALUE klass)
 
rb_method_entry_trb_method_entry_get_without_cache (VALUE klass, ID id, VALUE *defined_class_ptr)
 
rb_method_entry_trb_method_entry (VALUE klass, ID id, VALUE *defined_class_ptr)
 
static rb_method_entry_tget_original_method_entry (VALUE refinements, const rb_method_entry_t *me, VALUE *defined_class_ptr)
 
rb_method_entry_trb_resolve_refined_method (VALUE refinements, const rb_method_entry_t *me, VALUE *defined_class_ptr)
 
rb_method_entry_trb_method_entry_with_refinements (VALUE klass, ID id, VALUE *defined_class_ptr)
 
rb_method_entry_trb_method_entry_without_refinements (VALUE klass, ID id, VALUE *defined_class_ptr)
 
static void remove_method (VALUE klass, ID mid)
 
void rb_remove_method_id (VALUE klass, ID mid)
 
void rb_remove_method (VALUE klass, const char *name)
 
static VALUE rb_mod_remove_method (int argc, VALUE *argv, VALUE mod)
 
void rb_disable_super (VALUE klass, const char *name)
 
void rb_enable_super (VALUE klass, const char *name)
 
static void rb_export_method (VALUE klass, ID name, rb_method_flag_t noex)
 
int rb_method_boundp (VALUE klass, ID id, int ex)
 
void rb_attr (VALUE klass, ID id, int read, int write, int ex)
 
void rb_undef (VALUE klass, ID id)
 
static VALUE rb_mod_undef_method (int argc, VALUE *argv, VALUE mod)
 
static VALUE rb_mod_method_defined (VALUE mod, VALUE mid)
 
static VALUE check_definition (VALUE mod, VALUE mid, rb_method_flag_t noex)
 
static VALUE rb_mod_public_method_defined (VALUE mod, VALUE mid)
 
static VALUE rb_mod_private_method_defined (VALUE mod, VALUE mid)
 
static VALUE rb_mod_protected_method_defined (VALUE mod, VALUE mid)
 
int rb_method_entry_eq (const rb_method_entry_t *m1, const rb_method_entry_t *m2)
 
static st_index_t rb_hash_method_definition (st_index_t hash, const rb_method_definition_t *def)
 
st_index_t rb_hash_method_entry (st_index_t hash, const rb_method_entry_t *me)
 
void rb_alias (VALUE klass, ID name, ID def)
 
static VALUE rb_mod_alias_method (VALUE mod, VALUE newname, VALUE oldname)
 
static void secure_visibility (VALUE self)
 
static void set_method_visibility (VALUE self, int argc, VALUE *argv, rb_method_flag_t ex)
 
static VALUE rb_mod_public (int argc, VALUE *argv, VALUE module)
 
static VALUE rb_mod_protected (int argc, VALUE *argv, VALUE module)
 
static VALUE rb_mod_private (int argc, VALUE *argv, VALUE module)
 
static VALUE rb_mod_public_method (int argc, VALUE *argv, VALUE obj)
 
static VALUE rb_mod_private_method (int argc, VALUE *argv, VALUE obj)
 
static VALUE top_public (int argc, VALUE *argv)
 
static VALUE top_private (int argc, VALUE *argv)
 
static VALUE rb_mod_modfunc (int argc, VALUE *argv, VALUE module)
 
int rb_method_basic_definition_p (VALUE klass, ID id)
 
static int basic_obj_respond_to (VALUE obj, ID id, int pub)
 
int rb_obj_respond_to (VALUE obj, ID id, int priv)
 
int rb_respond_to (VALUE obj, ID id)
 
static VALUE obj_respond_to (int argc, VALUE *argv, VALUE obj)
 
static VALUE obj_respond_to_missing (VALUE obj, VALUE mid, VALUE priv)
 
void Init_eval_method (void)
 

Variables

static ID object_id
 
static ID removed
 
static ID singleton_removed
 
static ID undefined
 
static ID singleton_undefined
 
static ID added
 
static ID singleton_added
 
static ID attached
 
static struct cache_entry cache [CACHE_SIZE]
 
static VALUE(*)(VALUE(*func)(ANYARGS),
VALUE recv, int argc, const
VALUE *) 
call_cfunc_invoker_func (int argc)
 

Macro Definition Documentation

#define CACHE_MASK   0x7ff

Definition at line 6 of file vm_method.c.

#define CACHE_SIZE   0x800

Definition at line 5 of file vm_method.c.

Referenced by vm_clear_global_method_cache().

#define CALL_METHOD_HOOK (   klass,
  hook,
  mid 
)
Value:
do { \
const VALUE arg = ID2SYM(mid); \
VALUE recv_class = (klass); \
ID hook_id = (hook); \
if (FL_TEST((klass), FL_SINGLETON)) { \
recv_class = rb_ivar_get((klass), attached); \
hook_id = singleton_##hook; \
} \
rb_funcall2(recv_class, hook_id, 1, &arg); \
} while (0)
if(dispIdMember==DISPID_VALUE)
Definition: win32ole.c:791
VALUE rb_ivar_get(VALUE, ID)
Definition: variable.c:1116
#define FL_SINGLETON
Definition: ruby.h:1111
#define FL_TEST(x, f)
Definition: ruby.h:1146
VALUE rb_funcall2(VALUE, ID, int, const VALUE *)
Calls a method.
Definition: vm_eval.c:804
#define const
Definition: strftime.c:102
unsigned long ID
Definition: ruby.h:105
unsigned long VALUE
Definition: ruby.h:104
#define ID2SYM(x)
Definition: ruby.h:363
static ID attached
Definition: vm_method.c:18

Definition at line 350 of file vm_method.c.

Referenced by method_added(), rb_undef(), and remove_method().

#define EXPR1 (   c,
 
)    ((((c)>>3)^(m))&CACHE_MASK)

Definition at line 7 of file vm_method.c.

Referenced by rb_method_entry(), and rb_method_entry_get_without_cache().

#define NOEX_NOREDEF   0

Definition at line 9 of file vm_method.c.

Referenced by rb_method_entry_make().

#define rb_intern (   str)    rb_intern_const(str)
#define REPLICATE_METHOD (   klass,
  id,
  noex 
)
Value:
rb_method_entry_set((klass), (id), \
rb_method_entry((klass), (id), 0), \
rb_method_entry_t * rb_method_entry(VALUE klass, ID id, VALUE *defined_class_ptr)
Definition: vm_method.c:572
rb_method_flag_t
Definition: method.h:22
rb_method_entry_t * rb_method_entry_set(VALUE klass, ID mid, const rb_method_entry_t *me, rb_method_flag_t noex)
Definition: vm_method.c:478
#define NOEX_NOREDEF
Definition: vm_method.c:9

Referenced by Init_eval_method().

#define ruby_running   (GET_VM()->running)

Definition at line 29 of file vm_method.c.

Referenced by method_added(), and rb_method_entry_get_without_cache().

#define UNDEF_ALLOC_FUNC   ((rb_alloc_func_t)-1)

Definition at line 483 of file vm_method.c.

Referenced by rb_get_alloc_func(), and rb_undef_alloc_func().

#define VISI_CHECK (   x,
  f 
)    (((x)&NOEX_MASK) == (f))

Definition at line 1008 of file vm_method.c.

Referenced by check_definition().

Function Documentation

static int basic_obj_respond_to ( VALUE  obj,
ID  id,
int  pub 
)
inlinestatic
static VALUE check_definition ( VALUE  mod,
VALUE  mid,
rb_method_flag_t  noex 
)
static
static rb_method_entry_t* get_original_method_entry ( VALUE  refinements,
const rb_method_entry_t me,
VALUE defined_class_ptr 
)
static
void Init_eval_method ( void  )
static rb_method_entry_t* lookup_method_table ( VALUE  klass,
ID  id 
)
inlinestatic

Definition at line 179 of file vm_method.c.

References RCLASS_M_TBL, and st_lookup().

Referenced by rb_add_refined_method_entry(), rb_method_entry_make(), and search_method().

static void make_method_entry_refined ( rb_method_entry_t me)
static
static void method_added ( VALUE  klass,
ID  mid 
)
static

Definition at line 362 of file vm_method.c.

References added, CALL_METHOD_HOOK, and ruby_running.

Referenced by method_entry_set(), and rb_add_method().

static rb_method_entry_t* method_entry_set ( VALUE  klass,
ID  mid,
const rb_method_entry_t me,
rb_method_flag_t  noex,
VALUE  defined_class 
)
static
static VALUE obj_respond_to ( int  argc,
VALUE argv,
VALUE  obj 
)
static
static VALUE obj_respond_to_missing ( VALUE  obj,
VALUE  mid,
VALUE  priv 
)
static

Definition at line 1653 of file vm_method.c.

References Qfalse.

Referenced by Init_eval_method().

rb_method_entry_t* rb_add_method ( VALUE  klass,
ID  mid,
rb_method_type_t  type,
void *  opts,
rb_method_flag_t  noex 
)
void rb_add_method_cfunc ( VALUE  klass,
ID  mid,
VALUE(*)(ANYARGS func,
int  argc,
rb_method_flag_t  noex 
)
void rb_add_refined_method_entry ( VALUE  refined_class,
ID  mid 
)
void rb_alias ( VALUE  klass,
ID  name,
ID  def 
)
void rb_attr ( VALUE  klass,
ID  id,
int  read,
int  write,
int  ex 
)
void rb_clear_cache ( void  )

Definition at line 46 of file vm_method.c.

References rb_vm_change_state().

Referenced by rb_include_module(), rb_prepend_module(), and top_using().

void rb_clear_cache_by_class ( VALUE  klass)

Definition at line 64 of file vm_method.c.

References rb_vm_change_state().

Referenced by obj_free(), set_const_visibility(), and set_method_visibility().

static void rb_clear_cache_by_id ( ID  id)
static

Definition at line 58 of file vm_method.c.

References rb_vm_change_state().

Referenced by rb_method_entry_make().

static void rb_clear_cache_for_undef ( VALUE  klass,
ID  id 
)
static

Definition at line 52 of file vm_method.c.

References rb_vm_change_state().

Referenced by remove_method().

void rb_define_alloc_func ( VALUE  klass,
VALUE(*)(VALUE func 
)

Definition at line 486 of file vm_method.c.

References Check_Type, func, RCLASS_EXT, and T_CLASS.

Referenced by rb_undef_alloc_func().

static void rb_define_notimplement_method_id ( VALUE  mod,
ID  id,
rb_method_flag_t  noex 
)
static

Definition at line 78 of file vm_method.c.

References rb_add_method(), and VM_METHOD_TYPE_NOTIMPLEMENTED.

Referenced by rb_add_method_cfunc().

void rb_disable_super ( VALUE  klass,
const char *  name 
)

Definition at line 754 of file vm_method.c.

void rb_enable_super ( VALUE  klass,
const char *  name 
)

Definition at line 760 of file vm_method.c.

References rb_warning().

static void rb_export_method ( VALUE  klass,
ID  name,
rb_method_flag_t  noex 
)
static
VALUE rb_f_notimplement ( int  argc,
VALUE argv,
VALUE  obj 
)

Definition at line 70 of file vm_method.c.

References rb_notimplement(), and UNREACHABLE.

Referenced by rb_add_method(), and rb_add_method_cfunc().

void rb_free_method_entry ( rb_method_entry_t me)
void rb_gc_mark_unlinked_live_method_entries ( void *  pvm)
rb_alloc_func_t rb_get_alloc_func ( VALUE  klass)
static st_index_t rb_hash_method_definition ( st_index_t  hash,
const rb_method_definition_t def 
)
static
st_index_t rb_hash_method_entry ( st_index_t  hash,
const rb_method_entry_t me 
)

Definition at line 1203 of file vm_method.c.

References rb_method_entry_struct::def, and rb_hash_method_definition().

Referenced by method_hash().

int rb_method_basic_definition_p ( VALUE  klass,
ID  id 
)
int rb_method_boundp ( VALUE  klass,
ID  id,
int  ex 
)
static int rb_method_definition_eq ( const rb_method_definition_t d1,
const rb_method_definition_t d2 
)
static
rb_method_entry_t* rb_method_entry ( VALUE  klass,
ID  id,
VALUE defined_class_ptr 
)
int rb_method_entry_eq ( const rb_method_entry_t m1,
const rb_method_entry_t m2 
)

Definition at line 1121 of file vm_method.c.

References rb_method_entry_struct::def, and rb_method_definition_eq().

Referenced by method_eq().

rb_method_entry_t* rb_method_entry_get_without_cache ( VALUE  klass,
ID  id,
VALUE defined_class_ptr 
)
static rb_method_entry_t* rb_method_entry_make ( VALUE  klass,
ID  mid,
rb_method_type_t  type,
rb_method_definition_t def,
rb_method_flag_t  noex,
VALUE  defined_class 
)
static

Definition at line 226 of file vm_method.c.

References rb_method_definition_struct::alias_count, ALLOC, rb_method_definition_struct::body, rb_method_entry_struct::called_id, rb_method_entry_struct::def, FL_SINGLETON, FL_TEST, rb_method_entry_struct::flag, idRespond_to_missing, rb_method_definition_struct::iseq, rb_method_entry_struct::klass, rb_iseq_struct::line_info_table, rb_iseq_struct::location, lookup_method_table(), make_method_entry_refined(), rb_method_entry_struct::mark, unlinked_method_entry_list_entry::me, NIL_P, NOEX_NOREDEF, NOEX_PRIVATE, NOEX_WITH_SAFE, OBJ_UNTRUSTED, object_id, rb_method_definition_struct::original_id, rb_iseq_location_struct::path, PRIsVALUE, rb_method_definition_struct::proc, rb_add_refined_method_entry(), rb_check_frozen, rb_class_name(), rb_clear_cache_by_id(), rb_cObject, rb_compile_warning(), rb_eSecurityError, rb_eTypeError, rb_id2name(), rb_id2str(), rb_iseq_first_lineno(), rb_method_definition_eq(), rb_proc_get_iseq(), rb_raise(), rb_refinement_module_get_refined_class(), rb_safe_level, rb_unlink_method_entry(), rb_vm_check_redefinition_opt_method(), rb_warn(), rb_warning(), RCLASS_M_TBL, RCLASS_ORIGIN, RMODULE_IS_REFINEMENT, RSTRING_PTR, RTEST, ruby_verbose, search_method(), st_insert(), st_lookup(), rb_method_definition_struct::type, VM_METHOD_TYPE_BMETHOD, VM_METHOD_TYPE_ISEQ, VM_METHOD_TYPE_NOTIMPLEMENTED, VM_METHOD_TYPE_REFINED, VM_METHOD_TYPE_UNDEF, and VM_METHOD_TYPE_ZSUPER.

Referenced by method_entry_set(), and rb_add_method().

rb_method_entry_t* rb_method_entry_set ( VALUE  klass,
ID  mid,
const rb_method_entry_t me,
rb_method_flag_t  noex 
)

Definition at line 478 of file vm_method.c.

References method_entry_set().

Referenced by clone_method(), rb_mod_define_method(), and rb_mod_modfunc().

rb_method_entry_t* rb_method_entry_with_refinements ( VALUE  klass,
ID  id,
VALUE defined_class_ptr 
)
rb_method_entry_t* rb_method_entry_without_refinements ( VALUE  klass,
ID  id,
VALUE defined_class_ptr 
)
static VALUE rb_mod_alias_method ( VALUE  mod,
VALUE  newname,
VALUE  oldname 
)
static

Definition at line 1275 of file vm_method.c.

References mod, rb_alias(), rb_check_id(), rb_print_undef_str(), and rb_to_id().

Referenced by Init_eval_method().

static VALUE rb_mod_method_defined ( VALUE  mod,
VALUE  mid 
)
static

Definition at line 998 of file vm_method.c.

References Qfalse, Qtrue, rb_check_id(), and rb_method_boundp().

Referenced by Init_eval_method().

static VALUE rb_mod_modfunc ( int  argc,
VALUE argv,
VALUE  module 
)
static
static VALUE rb_mod_private ( int  argc,
VALUE argv,
VALUE  module 
)
static

Definition at line 1381 of file vm_method.c.

References NOEX_PRIVATE, SCOPE_SET, secure_visibility(), and set_method_visibility().

Referenced by Init_eval_method(), and top_private().

static VALUE rb_mod_private_method ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 1424 of file vm_method.c.

References NOEX_PRIVATE, rb_singleton_class(), and set_method_visibility().

Referenced by Init_eval_method().

static VALUE rb_mod_private_method_defined ( VALUE  mod,
VALUE  mid 
)
static

Definition at line 1083 of file vm_method.c.

References check_definition(), and NOEX_PRIVATE.

Referenced by Init_eval_method().

static VALUE rb_mod_protected ( int  argc,
VALUE argv,
VALUE  module 
)
static

Definition at line 1349 of file vm_method.c.

References NOEX_PROTECTED, SCOPE_SET, secure_visibility(), and set_method_visibility().

Referenced by Init_eval_method().

static VALUE rb_mod_protected_method_defined ( VALUE  mod,
VALUE  mid 
)
static

Definition at line 1115 of file vm_method.c.

References check_definition(), and NOEX_PROTECTED.

Referenced by Init_eval_method().

static VALUE rb_mod_public ( int  argc,
VALUE argv,
VALUE  module 
)
static

Definition at line 1326 of file vm_method.c.

References NOEX_PUBLIC, SCOPE_SET, secure_visibility(), and set_method_visibility().

Referenced by Init_eval_method(), and top_public().

static VALUE rb_mod_public_method ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 1401 of file vm_method.c.

References NOEX_PUBLIC, rb_singleton_class(), and set_method_visibility().

Referenced by Init_eval_method().

static VALUE rb_mod_public_method_defined ( VALUE  mod,
VALUE  mid 
)
static

Definition at line 1051 of file vm_method.c.

References check_definition(), and NOEX_PUBLIC.

Referenced by Init_eval_method().

static VALUE rb_mod_remove_method ( int  argc,
VALUE argv,
VALUE  mod 
)
static

Definition at line 734 of file vm_method.c.

References argc, i, mod, rb_check_id(), rb_class2name(), rb_name_error_str(), remove_method(), RSTRING_PTR, and v.

Referenced by Init_eval_method().

static VALUE rb_mod_undef_method ( int  argc,
VALUE argv,
VALUE  mod 
)
static

Definition at line 957 of file vm_method.c.

References argc, i, mod, rb_check_id(), rb_method_name_error(), rb_undef(), and v.

Referenced by Init_eval_method().

int rb_obj_respond_to ( VALUE  obj,
ID  id,
int  priv 
)
void rb_remove_method ( VALUE  klass,
const char *  name 
)

Definition at line 720 of file vm_method.c.

References rb_intern, and remove_method().

void rb_remove_method_id ( VALUE  klass,
ID  mid 
)

Definition at line 714 of file vm_method.c.

References remove_method().

Referenced by num_sadded().

rb_method_entry_t* rb_resolve_refined_method ( VALUE  refinements,
const rb_method_entry_t me,
VALUE defined_class_ptr 
)
int rb_respond_to ( VALUE  obj,
ID  id 
)
void rb_sweep_method_entry ( void *  pvm)
void rb_undef ( VALUE  klass,
ID  id 
)
void rb_undef_alloc_func ( VALUE  klass)
void rb_unlink_method_entry ( rb_method_entry_t me)
static void rb_vm_check_redefinition_opt_method ( const rb_method_entry_t me,
VALUE  klass 
)
static
static void release_method_definition ( rb_method_definition_t def)
static
static void remove_method ( VALUE  klass,
ID  mid 
)
static
static rb_method_entry_t * search_method ( VALUE  klass,
ID  id,
VALUE defined_class_ptr 
)
inlinestatic
static void secure_visibility ( VALUE  self)
static
static void set_method_visibility ( VALUE  self,
int  argc,
VALUE argv,
rb_method_flag_t  ex 
)
static
static void setup_method_cfunc_struct ( rb_method_cfunc_t cfunc,
VALUE(*)()  func,
int  argc 
)
static
static VALUE top_private ( int  argc,
VALUE argv 
)
static

Definition at line 1447 of file vm_method.c.

References rb_cObject, and rb_mod_private().

Referenced by Init_eval_method().

static VALUE top_public ( int  argc,
VALUE argv 
)
static

Definition at line 1441 of file vm_method.c.

References rb_cObject, and rb_mod_public().

Referenced by Init_eval_method().

static void vm_clear_global_method_cache ( void  )
static

Definition at line 33 of file vm_method.c.

References cache, CACHE_SIZE, and cache_entry::filled_version.

Variable Documentation

ID added
static

Definition at line 18 of file vm_method.c.

Referenced by Init_eval_method(), and method_added().

ID attached
static

Definition at line 18 of file vm_method.c.

Referenced by Init_eval_method(), and rb_undef().

struct cache_entry cache[CACHE_SIZE]
static
VALUE(*)(VALUE (*func)(ANYARGS), VALUE recv, int argc, const VALUE *) call_cfunc_invoker_func(int argc)
static

Definition at line 370 of file vm_method.c.

Referenced by setup_method_cfunc_struct().

ID object_id
static

Definition at line 16 of file vm_method.c.

Referenced by Init_eval_method(), rb_method_entry_make(), rb_undef(), and remove_method().

ID removed
static

Definition at line 17 of file vm_method.c.

Referenced by Init_eval_method(), and remove_method().

ID singleton_added
static

Definition at line 18 of file vm_method.c.

Referenced by Init_eval_method().

ID singleton_removed
static

Definition at line 17 of file vm_method.c.

Referenced by Init_eval_method().

ID singleton_undefined
static

Definition at line 17 of file vm_method.c.

Referenced by Init_eval_method().

ID undefined
static

Definition at line 17 of file vm_method.c.

Referenced by Init_eval_method(), and rb_undef().