Ruby
2.5.0dev(2017-10-22revision60238)
|
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | rb_scope_visi_struct |
struct | rb_cref_struct |
CREF (Class REFerence) More... | |
struct | rb_method_entry_struct |
struct | rb_callable_method_entry_struct |
struct | rb_method_iseq_struct |
struct | rb_method_cfunc_struct |
struct | rb_method_attr_struct |
struct | rb_method_alias_struct |
struct | rb_method_refined_struct |
Macros | |
#define | END_OF_ENUMERATION(key) END_OF_##key##_PLACEHOLDER = 0 |
#define | METHOD_ENTRY_VISI(me) (rb_method_visibility_t)(((me)->flags & (IMEMO_FL_USER0 | IMEMO_FL_USER1)) >> (IMEMO_FL_USHIFT+0)) |
#define | METHOD_ENTRY_BASIC(me) (int) (((me)->flags & (IMEMO_FL_USER2 )) >> (IMEMO_FL_USHIFT+2)) |
#define | METHOD_ENTRY_COMPLEMENTED(me) ((me)->flags & IMEMO_FL_USER3) |
#define | METHOD_ENTRY_COMPLEMENTED_SET(me) ((me)->flags = (me)->flags | IMEMO_FL_USER3) |
#define | rb_iseq_t rb_iseq_t |
#define | UNDEFINED_METHOD_ENTRY_P(me) (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF) |
#define | UNDEFINED_REFINED_METHOD_P(def) |
Typedefs | |
typedef struct rb_scope_visi_struct | rb_scope_visibility_t |
typedef struct rb_cref_struct | rb_cref_t |
CREF (Class REFerence) More... | |
typedef struct rb_method_entry_struct | rb_method_entry_t |
typedef struct rb_callable_method_entry_struct | rb_callable_method_entry_t |
typedef struct rb_iseq_struct | rb_iseq_t |
typedef struct rb_method_iseq_struct | rb_method_iseq_t |
typedef struct rb_method_cfunc_struct | rb_method_cfunc_t |
typedef struct rb_method_attr_struct | rb_method_attr_t |
typedef struct rb_method_alias_struct | rb_method_alias_t |
typedef struct rb_method_refined_struct | rb_method_refined_t |
typedef struct rb_method_definition_struct | rb_method_definition_t |
#define METHOD_ENTRY_BASIC | ( | me | ) | (int) (((me)->flags & (IMEMO_FL_USER2 )) >> (IMEMO_FL_USHIFT+2)) |
Definition at line 68 of file method.h.
Referenced by rb_method_basic_definition_p().
#define METHOD_ENTRY_COMPLEMENTED | ( | me | ) | ((me)->flags & IMEMO_FL_USER3) |
#define METHOD_ENTRY_COMPLEMENTED_SET | ( | me | ) | ((me)->flags = (me)->flags | IMEMO_FL_USER3) |
#define METHOD_ENTRY_VISI | ( | me | ) | (rb_method_visibility_t)(((me)->flags & (IMEMO_FL_USER0 | IMEMO_FL_USER1)) >> (IMEMO_FL_USHIFT+0)) |
Definition at line 67 of file method.h.
Referenced by rb_method_boundp().
#define UNDEFINED_METHOD_ENTRY_P | ( | me | ) | (!(me) || !(me)->def || (me)->def->type == VM_METHOD_TYPE_UNDEF) |
#define UNDEFINED_REFINED_METHOD_P | ( | def | ) |
typedef struct rb_callable_method_entry_struct rb_callable_method_entry_t |
typedef struct rb_cref_struct rb_cref_t |
CREF (Class REFerence)
typedef struct rb_iseq_struct rb_iseq_t |
typedef struct rb_method_alias_struct rb_method_alias_t |
typedef struct rb_method_attr_struct rb_method_attr_t |
typedef struct rb_method_cfunc_struct rb_method_cfunc_t |
typedef struct rb_method_definition_struct rb_method_definition_t |
typedef struct rb_method_entry_struct rb_method_entry_t |
typedef struct rb_method_iseq_struct rb_method_iseq_t |
typedef struct rb_method_refined_struct rb_method_refined_t |
typedef struct rb_scope_visi_struct rb_scope_visibility_t |
enum rb_method_type_t |
PACKED_STRUCT_UNALIGNED | ( | struct rb_method_definition_struct { unsigned int type :4;int alias_count :28;int complemented_count :28;union { rb_method_iseq_t iseq;rb_method_cfunc_t cfunc;rb_method_attr_t attr;rb_method_alias_t alias;rb_method_refined_t refined;const VALUE proc;enum method_optimized_type optimize_type;} body;ID original_id;} | ) |
rb_method_entry_t* rb_add_method | ( | VALUE | klass, |
ID | mid, | ||
rb_method_type_t | type, | ||
void * | option, | ||
rb_method_visibility_t | visi | ||
) |
Definition at line 625 of file vm_method.c.
Referenced by rb_add_method_cfunc(), rb_add_method_iseq(), and rb_undef_method().
void rb_add_method_cfunc | ( | VALUE | klass, |
ID | mid, | ||
VALUE(*)(ANYARGS) | func, | ||
int | argc, | ||
rb_method_visibility_t | visi | ||
) |
Definition at line 130 of file vm_method.c.
References rb_method_cfunc_struct::argc, argc, rb_method_cfunc_struct::func, rb_add_method(), rb_eArgError, rb_f_notimplement(), rb_raise(), and VM_METHOD_TYPE_CFUNC.
Referenced by rb_define_method(), rb_define_method_id(), rb_define_private_method(), and rb_define_protected_method().
void rb_add_method_iseq | ( | VALUE | klass, |
ID | mid, | ||
const rb_iseq_t * | iseq, | ||
rb_cref_t * | cref, | ||
rb_method_visibility_t | visi | ||
) |
Definition at line 637 of file vm_method.c.
References rb_add_method(), and VM_METHOD_TYPE_ISEQ.
Definition at line 456 of file vm_method.c.
const rb_callable_method_entry_t* rb_callable_method_entry | ( | VALUE | klass, |
ID | id | ||
) |
Definition at line 833 of file vm_method.c.
References cache_entry::defined_class.
const rb_callable_method_entry_t* rb_callable_method_entry_with_refinements | ( | VALUE | klass, |
ID | id, | ||
VALUE * | defined_class | ||
) |
Definition at line 872 of file vm_method.c.
References cache_entry::defined_class.
const rb_callable_method_entry_t* rb_callable_method_entry_without_refinements | ( | VALUE | klass, |
ID | id, | ||
VALUE * | defined_class | ||
) |
Definition at line 886 of file vm_method.c.
References cache_entry::defined_class.
void rb_free_method_entry | ( | const rb_method_entry_t * | me | ) |
Definition at line 168 of file vm_method.c.
st_index_t rb_hash_method_entry | ( | st_index_t | hash, |
const rb_method_entry_t * | me | ||
) |
Definition at line 1519 of file vm_method.c.
const rb_method_entry_t* rb_method_entry | ( | VALUE | klass, |
ID | id | ||
) |
Definition at line 793 of file vm_method.c.
Referenced by rb_method_basic_definition_p().
int rb_method_entry_arity | ( | const rb_method_entry_t * | me | ) |
const rb_method_entry_t* rb_method_entry_at | ( | VALUE | obj, |
ID | id | ||
) |
Definition at line 709 of file vm_method.c.
const rb_method_entry_t* rb_method_entry_clone | ( | const rb_method_entry_t * | me | ) |
Definition at line 396 of file vm_method.c.
const rb_callable_method_entry_t* rb_method_entry_complement_defined_class | ( | const rb_method_entry_t * | src_me, |
ID | called_id, | ||
VALUE | defined_class | ||
) |
Definition at line 405 of file vm_method.c.
void rb_method_entry_copy | ( | rb_method_entry_t * | dst, |
const rb_method_entry_t * | src | ||
) |
Definition at line 418 of file vm_method.c.
References rb_method_entry_struct::def.
rb_method_entry_t* rb_method_entry_create | ( | ID | called_id, |
VALUE | klass, | ||
rb_method_visibility_t | visi, | ||
const rb_method_definition_t * | def | ||
) |
Definition at line 387 of file vm_method.c.
int rb_method_entry_eq | ( | const rb_method_entry_t * | m1, |
const rb_method_entry_t * | m2 | ||
) |
Definition at line 1420 of file vm_method.c.
VALUE rb_method_entry_location | ( | const rb_method_entry_t * | me | ) |
rb_method_entry_t* rb_method_entry_set | ( | VALUE | klass, |
ID | mid, | ||
const rb_method_entry_t * | , | ||
rb_method_visibility_t | noex | ||
) |
Definition at line 660 of file vm_method.c.
const rb_method_entry_t* rb_method_entry_with_refinements | ( | VALUE | klass, |
ID | id, | ||
VALUE * | defined_class | ||
) |
Definition at line 866 of file vm_method.c.
const rb_method_entry_t* rb_method_entry_without_refinements | ( | VALUE | klass, |
ID | id, | ||
VALUE * | defined_class | ||
) |
Definition at line 880 of file vm_method.c.
Referenced by rb_method_boundp().
Definition at line 2501 of file proc.c.
Referenced by rb_obj_method_location().
Definition at line 2508 of file proc.c.
References CLASS_OF, and rb_mod_method_location().
const rb_method_entry_t* rb_resolve_refined_method | ( | VALUE | refinements, |
const rb_method_entry_t * | me | ||
) |
Definition at line 940 of file vm_method.c.
const rb_callable_method_entry_t* rb_resolve_refined_method_callable | ( | VALUE | refinements, |
const rb_callable_method_entry_t * | me | ||
) |
Definition at line 946 of file vm_method.c.
References rb_callable_method_entry_struct::defined_class.
void rb_scope_visibility_set | ( | rb_method_visibility_t | ) |
Definition at line 1125 of file vm_method.c.
void rb_sweep_method_entry | ( | void * | vm | ) |