16 #ifndef END_OF_ENUMERATION 17 # if defined(__GNUC__) &&! defined(__STRICT_ANSI__) 18 # define END_OF_ENUMERATION(key) 20 # define END_OF_ENUMERATION(key) END_OF_##key##_PLACEHOLDER = 0 41 #define NOEX_SAFE(n) ((int)((n) >> NOEX_SAFE_SHIFT_OFFSET) & 0x0F) 42 #define NOEX_WITH(n, s) (((s) << NOEX_SAFE_SHIFT_OFFSET) | (n) | (ruby_running ? 0 : NOEX_BASIC)) 43 #define NOEX_WITH_SAFE(n) NOEX_WITH((n), rb_safe_level()) 86 enum method_optimized_type {
110 #define UNDEFINED_METHOD_ENTRY_P(me) (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF) 111 #define UNDEFINED_REFINED_METHOD_P(def) \ 112 ((def)->type == VM_METHOD_TYPE_REFINED && \ 113 UNDEFINED_METHOD_ENTRY_P((def)->body.orig_me)) 122 VALUE *defined_class_ptr);
124 VALUE *defined_class_ptr);
126 VALUE *defined_class_ptr);
struct unlinked_method_entry_list_entry * next
VALUE rb_mod_method_location(VALUE mod, ID id)
rb_method_entry_t * rb_method_entry_without_refinements(VALUE klass, ID id, VALUE *defined_class_ptr)
struct rb_method_entry_struct * orig_me
struct rb_method_attr_struct rb_method_attr_t
SSL_METHOD *(* func)(void)
void rb_mark_method_entry(const rb_method_entry_t *me)
void rb_sweep_method_entry(void *vm)
union rb_method_definition_struct::@126 body
struct rb_method_entry_struct rb_method_entry_t
struct rb_method_definition_struct rb_method_definition_t
int rb_method_entry_eq(const rb_method_entry_t *m1, const rb_method_entry_t *m2)
rb_method_entry_t * rb_method_entry_get_without_cache(VALUE klass, ID id, VALUE *define_class_ptr)
void rb_free_method_entry(rb_method_entry_t *me)
enum rb_method_definition_struct::@126::method_optimized_type optimize_type
void rb_free_m_tbl_wrapper(struct method_table_wrapper *wrapper)
int rb_method_entry_arity(const rb_method_entry_t *me)
rb_method_entry_t * rb_resolve_refined_method(VALUE refinements, const rb_method_entry_t *me, VALUE *defined_class_ptr)
rb_method_entry_t * rb_method_entry(VALUE klass, ID id, VALUE *define_class_ptr)
rb_method_entry_t * rb_method_entry_with_refinements(VALUE klass, ID id, VALUE *defined_class_ptr)
VALUE(* invoker)(VALUE(*func)(ANYARGS), VALUE recv, int argc, const VALUE *argv)
rb_method_entry_t * rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *option, rb_method_flag_t noex)
st_index_t rb_hash_method_entry(st_index_t hash, const rb_method_entry_t *me)
struct rb_method_cfunc_struct rb_method_cfunc_t
VALUE rb_method_entry_location(rb_method_entry_t *me)
rb_method_entry_t * rb_method_entry_at(VALUE obj, ID id)
#define END_OF_ENUMERATION(key)
rb_method_definition_t * def
void rb_add_refined_method_entry(VALUE refined_class, ID mid)
static unsigned int hash(const char *str, unsigned int len)
rb_method_entry_t * rb_method_entry_set(VALUE klass, ID mid, const rb_method_entry_t *, rb_method_flag_t noex)
void rb_add_method_cfunc(VALUE klass, ID mid, VALUE(*func)(ANYARGS), int argc, rb_method_flag_t noex)
VALUE rb_obj_method_location(VALUE obj, ID id)
void rb_free_m_tbl(st_table *tbl)