#include "ruby/ruby.h"#include "internal.h"#include "gc.h"#include "vm_core.h"#include "iseq.h"#include "insns.inc"#include "insns_info.inc"#include "node_name.inc"Go to the source code of this file.
Defines | |
| #define | ISEQ_MAJOR_VERSION 1 |
| #define | ISEQ_MINOR_VERSION 2 |
| #define | hidden_obj_p(obj) (!SPECIAL_CONST_P(obj) && !RBASIC(obj)->klass) |
| #define | SET_COMPILE_OPTION(o, h, mem) |
| #define | SET_COMPILE_OPTION_NUM(o, h, mem) |
| #define | SET_COMPILE_OPTION(o, h, mem) rb_hash_aset((h), ID2SYM(rb_intern(#mem)), (o)->mem ? Qtrue : Qfalse) |
| #define | SET_COMPILE_OPTION_NUM(o, h, mem) rb_hash_aset((h), ID2SYM(rb_intern(#mem)), INT2NUM((o)->mem)) |
| #define | CHECK_ARRAY(v) rb_convert_type((v), T_ARRAY, "Array", "to_ary") |
| #define | CHECK_STRING(v) rb_convert_type((v), T_STRING, "String", "to_str") |
| #define | CHECK_SYMBOL(v) rb_convert_type((v), T_SYMBOL, "Symbol", "to_sym") |
| #define | DECL_SYMBOL(name) static VALUE sym_##name |
| #define | INIT_SYMBOL(name) sym_##name = ID2SYM(rb_intern(#name)) |
| #define | PARAM_TYPE(type) rb_ary_push(a = rb_ary_new2(2), ID2SYM(type)) |
| #define | PARAM_ID(i) iseq->local_table[(i)] |
| #define | PARAM(i, type) |
| #define | ALLOC_AND_COPY(dst, src, type, size) |
Functions | |
| static VALUE | obj_resurrect (VALUE obj) |
| static void | compile_data_free (struct iseq_compile_data *compile_data) |
| static void | iseq_free (void *ptr) |
| static void | iseq_mark (void *ptr) |
| static size_t | iseq_memsize (const void *ptr) |
| static VALUE | iseq_alloc (VALUE klass) |
| static void | set_relation (rb_iseq_t *iseq, const VALUE parent) |
| static VALUE | prepare_iseq_build (rb_iseq_t *iseq, VALUE name, VALUE filename, VALUE filepath, VALUE line_no, VALUE parent, enum iseq_type type, VALUE block_opt, const rb_compile_option_t *option) |
| static VALUE | cleanup_iseq_build (rb_iseq_t *iseq) |
| static void | make_compile_option (rb_compile_option_t *option, VALUE opt) |
| static VALUE | make_compile_option_value (rb_compile_option_t *option) |
| VALUE | rb_iseq_new (NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE parent, enum iseq_type type) |
| VALUE | rb_iseq_new_top (NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE parent) |
| VALUE | rb_iseq_new_main (NODE *node, VALUE filename, VALUE filepath) |
| static VALUE | rb_iseq_new_with_bopt_and_opt (NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE line_no, VALUE parent, enum iseq_type type, VALUE bopt, const rb_compile_option_t *option) |
| VALUE | rb_iseq_new_with_opt (NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE line_no, VALUE parent, enum iseq_type type, const rb_compile_option_t *option) |
| VALUE | rb_iseq_new_with_bopt (NODE *node, VALUE name, VALUE filename, VALUE filepath, VALUE line_no, VALUE parent, enum iseq_type type, VALUE bopt) |
| static VALUE | CHECK_INTEGER (VALUE v) |
| static VALUE | iseq_load (VALUE self, VALUE data, VALUE parent, VALUE opt) |
| static VALUE | iseq_s_load (int argc, VALUE *argv, VALUE self) |
| VALUE | rb_iseq_load (VALUE data, VALUE parent, VALUE opt) |
| static NODE * | parse_string (VALUE str, const char *file, int line) |
| VALUE | rb_iseq_compile_with_option (VALUE src, VALUE file, VALUE filepath, VALUE line, VALUE opt) |
| VALUE | rb_iseq_compile (VALUE src, VALUE file, VALUE line) |
| static VALUE | iseq_s_compile (int argc, VALUE *argv, VALUE self) |
| static VALUE | iseq_s_compile_file (int argc, VALUE *argv, VALUE self) |
| static VALUE | iseq_s_compile_option_set (VALUE self, VALUE opt) |
| static VALUE | iseq_s_compile_option_get (VALUE self) |
| static rb_iseq_t * | iseq_check (VALUE val) |
| static VALUE | iseq_eval (VALUE self) |
| static VALUE | iseq_inspect (VALUE self) |
| static VALUE | iseq_data_to_ary (rb_iseq_t *iseq) |
| static VALUE | iseq_to_a (VALUE self) |
| int | rb_iseq_first_lineno (rb_iseq_t *iseq) |
| static struct iseq_insn_info_entry * | get_insn_info (const rb_iseq_t *iseq, const unsigned long pos) |
| static unsigned short | find_line_no (rb_iseq_t *iseq, unsigned long pos) |
| static unsigned short | find_prev_line_no (rb_iseq_t *iseqdat, unsigned long pos) |
| static VALUE | insn_operand_intern (rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child) |
| int | rb_iseq_disasm_insn (VALUE ret, VALUE *iseq, size_t pos, rb_iseq_t *iseqdat, VALUE child) |
| Disassemble a instruction Iseq -> Iseq inspect object. | |
| static const char * | catch_type (int type) |
| VALUE | rb_iseq_disasm (VALUE self) |
| static VALUE | iseq_s_disasm (VALUE klass, VALUE body) |
| const char * | ruby_node_name (int node) |
| static VALUE | register_label (struct st_table *table, unsigned long idx) |
| static VALUE | exception_type2symbol (VALUE type) |
| static int | cdhash_each (VALUE key, VALUE value, VALUE ary) |
| VALUE | rb_iseq_clone (VALUE iseqval, VALUE newcbase) |
| VALUE | rb_iseq_parameters (const rb_iseq_t *iseq, int is_proc) |
| VALUE | rb_iseq_build_for_ruby2cext (const rb_iseq_t *iseq_template, const rb_insn_func_t *func, const struct iseq_insn_info_entry *insn_info_table, const char **local_table, const VALUE *arg_opt_table, const struct iseq_catch_table_entry *catch_table, const char *name, const char *filename, const unsigned short line_no) |
| void | Init_ISeq (void) |
Variables | |
| VALUE | rb_cISeq |
| static const rb_data_type_t | iseq_data_type |
| static rb_compile_option_t | COMPILE_OPTION_DEFAULT |
| static const rb_compile_option_t | COMPILE_OPTION_FALSE = {0} |
| #define CHECK_ARRAY | ( | v | ) | rb_convert_type((v), T_ARRAY, "Array", "to_ary") |
| #define CHECK_STRING | ( | v | ) | rb_convert_type((v), T_STRING, "String", "to_str") |
| #define CHECK_SYMBOL | ( | v | ) | rb_convert_type((v), T_SYMBOL, "Symbol", "to_sym") |
Definition at line 1067 of file iseq.c.
Referenced by iseq_data_to_ary().
| #define hidden_obj_p | ( | obj | ) | (!SPECIAL_CONST_P(obj) && !RBASIC(obj)->klass) |
Definition at line 28 of file iseq.c.
Referenced by obj_resurrect().
Definition at line 1070 of file iseq.c.
Referenced by iseq_data_to_ary().
| #define ISEQ_MAJOR_VERSION 1 |
Definition at line 23 of file iseq.c.
Referenced by iseq_data_to_ary().
| #define ISEQ_MINOR_VERSION 2 |
Definition at line 24 of file iseq.c.
Referenced by iseq_data_to_ary().
| #define PARAM | ( | i, | |||
| type | ) |
( \
PARAM_TYPE(type), \
rb_id2name(PARAM_ID(i)) ? \
rb_ary_push(a, ID2SYM(PARAM_ID(i))) : \
a)
Referenced by rb_iseq_parameters().
| #define PARAM_ID | ( | i | ) | iseq->local_table[(i)] |
Referenced by rb_iseq_parameters().
Referenced by rb_iseq_parameters().
| #define SET_COMPILE_OPTION | ( | o, | |||
| h, | |||||
| mem | ) | rb_hash_aset((h), ID2SYM(rb_intern(#mem)), (o)->mem ? Qtrue : Qfalse) |
| #define SET_COMPILE_OPTION | ( | o, | |||
| h, | |||||
| mem | ) |
{ VALUE flag = rb_hash_aref((h), ID2SYM(rb_intern(#mem))); \
if (flag == Qtrue) { (o)->mem = 1; } \
else if (flag == Qfalse) { (o)->mem = 0; } \
}
Referenced by make_compile_option(), and make_compile_option_value().
| #define SET_COMPILE_OPTION_NUM | ( | o, | |||
| h, | |||||
| mem | ) | rb_hash_aset((h), ID2SYM(rb_intern(#mem)), INT2NUM((o)->mem)) |
| #define SET_COMPILE_OPTION_NUM | ( | o, | |||
| h, | |||||
| mem | ) |
{ VALUE num = rb_hash_aref(opt, ID2SYM(rb_intern(#mem))); \
if (!NIL_P(num)) (o)->mem = NUM2INT(num); \
}
Referenced by make_compile_option(), and make_compile_option_value().
| static const char* catch_type | ( | int | type | ) | [static] |
Definition at line 909 of file iseq.c.
References rb_bug().
Referenced by iseq_set_exception_table(), and rb_iseq_disasm().
Definition at line 1103 of file iseq.c.
References obj_resurrect(), rb_ary_push(), and ST_CONTINUE.
Referenced by iseq_data_to_ary().
Definition at line 289 of file iseq.c.
References rb_iseq_struct::compile_data, compile_data_free(), err, iseq_compile_data::err_info, rb_iseq_struct::filename, Qtrue, rb_exc_raise(), rb_funcall2(), rb_intern, and RTEST.
Referenced by iseq_load(), and rb_iseq_new_with_bopt_and_opt().
| static void compile_data_free | ( | struct iseq_compile_data * | compile_data | ) | [static] |
Definition at line 47 of file iseq.c.
References iseq_compile_data_storage::next, ruby_xfree(), and iseq_compile_data::storage_head.
Referenced by cleanup_iseq_build(), and iseq_free().
Definition at line 1086 of file iseq.c.
References iseq_catch_table_entry::CATCH_TYPE_BREAK, iseq_catch_table_entry::CATCH_TYPE_ENSURE, iseq_catch_table_entry::CATCH_TYPE_NEXT, iseq_catch_table_entry::CATCH_TYPE_REDO, iseq_catch_table_entry::CATCH_TYPE_RESCUE, iseq_catch_table_entry::CATCH_TYPE_RETRY, CONST_ID, id, ID2SYM, and rb_bug().
Referenced by iseq_data_to_ary().
| static unsigned short find_line_no | ( | rb_iseq_t * | iseq, | |
| unsigned long | pos | |||
| ) | [static] |
Definition at line 711 of file iseq.c.
References get_insn_info(), and iseq_insn_info_entry::line_no.
Referenced by rb_iseq_disasm_insn().
| static unsigned short find_prev_line_no | ( | rb_iseq_t * | iseqdat, | |
| unsigned long | pos | |||
| ) | [static] |
Definition at line 723 of file iseq.c.
References rb_iseq_struct::insn_info_size, rb_iseq_struct::insn_info_table, iseq_insn_info_entry::line_no, iseq_insn_info_entry::position, and size.
Referenced by rb_iseq_disasm_insn().
| static struct iseq_insn_info_entry* get_insn_info | ( | const rb_iseq_t * | iseq, | |
| const unsigned long | pos | |||
| ) | [static, read] |
Definition at line 696 of file iseq.c.
References rb_iseq_struct::insn_info_size, rb_iseq_struct::insn_info_table, iseq_insn_info_entry::position, and size.
Referenced by find_line_no(), and rb_iseq_disasm_insn().
| void Init_ISeq | ( | void | ) |
Definition at line 1509 of file iseq.c.
References iseq_alloc(), iseq_eval(), iseq_inspect(), iseq_s_compile(), iseq_s_compile_file(), iseq_s_compile_option_get(), iseq_s_compile_option_set(), iseq_s_disasm(), iseq_s_load(), iseq_to_a(), rb_cISeq, rb_cObject, rb_cRubyVM, rb_define_alloc_func(), rb_define_class_under(), rb_define_method(), rb_define_singleton_method(), and rb_iseq_disasm().
| static VALUE insn_operand_intern | ( | rb_iseq_t * | iseq, | |
| VALUE | insn, | |||
| int | op_no, | |||
| VALUE | op, | |||
| int | len, | |||
| size_t | pos, | |||
| VALUE * | pnop, | |||
| VALUE | child | |||
| ) | [static] |
Definition at line 743 of file iseq.c.
References CLASS_OF, rb_iseq_struct::ic_entries, ID2SYM, INT2FIX, rb_iseq_struct::local_iseq, rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::name, name, obj_resurrect(), rb_iseq_struct::parent_iseq, PRIdPTRDIFF, PRIdVALUE, PRIuVALUE, rb_ary_push(), rb_bug(), rb_cISeq, rb_global_entry(), rb_id2name(), rb_id2str(), rb_inspect(), rb_sprintf(), rb_str_dup(), rb_str_new2, rb_iseq_struct::self, and type.
Referenced by rb_iseq_disasm_insn().
Definition at line 171 of file iseq.c.
References TypedData_Make_Struct.
Referenced by Init_ISeq(), iseq_load(), rb_iseq_build_for_ruby2cext(), rb_iseq_clone(), and rb_iseq_new_with_bopt_and_opt().
Definition at line 644 of file iseq.c.
References GetISeqPtr, rb_iseq_struct::name, rb_eTypeError, and rb_raise().
Referenced by iseq_to_a(), and rb_iseq_disasm().
Definition at line 1111 of file iseq.c.
References rb_iseq_struct::arg_block, rb_iseq_struct::arg_opt_table, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_post_start, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, rb_iseq_struct::arg_size, rb_iseq_struct::argc, args, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, cdhash_each(), iseq_catch_table_entry::cont, DECL_SYMBOL, iseq_catch_table_entry::end, exception_type2symbol(), rb_iseq_struct::filename, rb_iseq_struct::filepath, FIX2INT, GetISeqPtr, rb_iseq_struct::ic_entries, ID2SYM, INIT_SYMBOL, rb_iseq_struct::insn_info_table, INT2FIX, iseq_catch_table_entry::iseq, rb_iseq_struct::iseq, ISEQ_MAJOR_VERSION, ISEQ_MINOR_VERSION, rb_iseq_struct::iseq_size, len, rb_iseq_struct::line_no, iseq_insn_info_entry::line_no, rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, main(), rb_iseq_struct::name, obj_resurrect(), Qnil, RARRAY_LEN, RARRAY_LENINT, RARRAY_PTR, rb_ary_entry(), rb_ary_new(), rb_ary_new2(), rb_ary_push(), rb_ary_store(), rb_bug(), rb_global_entry(), rb_hash_aset(), rb_hash_foreach(), rb_hash_new(), rb_id2str(), rb_intern, rb_str_new2, register_label(), iseq_catch_table_entry::sp, st_free_table(), st_init_numtable(), st_lookup(), rb_iseq_struct::stack_max, iseq_catch_table_entry::start, top, iseq_catch_table_entry::type, rb_iseq_struct::type, and type.
Referenced by iseq_to_a().
Definition at line 655 of file iseq.c.
References rb_iseq_eval(), and rb_secure().
Referenced by Init_ISeq().
| static void iseq_free | ( | void * | ptr | ) | [static] |
Definition at line 62 of file iseq.c.
References rb_iseq_struct::arg_opt_table, rb_iseq_struct::catch_table, rb_iseq_struct::compile_data, compile_data_free(), rb_iseq_struct::filename, rb_iseq_struct::ic_entries, rb_iseq_struct::insn_info_table, rb_iseq_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::local_table, rb_iseq_struct::name, rb_iseq_struct::orig, RSTRING_PTR, RUBY_FREE_ENTER, RUBY_FREE_LEAVE, RUBY_FREE_UNLESS_NULL, RUBY_GC_INFO, and ruby_xfree().
Definition at line 662 of file iseq.c.
References rb_iseq_struct::filename, GetISeqPtr, rb_iseq_struct::name, rb_obj_classname(), rb_sprintf(), and RSTRING_PTR.
Referenced by Init_ISeq(), and rb_iseq_disasm().
Definition at line 444 of file iseq.c.
References args, ATOMIC_PTR_CAS, CHECK_ARRAY, CHECK_INTEGER(), CHECK_STRING, CHECK_SYMBOL, cleanup_iseq_build(), FIXNUM_P, GetISeqPtr, ID2SYM, iseq_alloc(), make_compile_option(), name, NIL_P, prepare_iseq_build(), Qnil, rb_ary_entry(), rb_eTypeError, rb_id2name(), rb_intern, rb_iseq_build_from_ary(), rb_raise(), rb_iseq_struct::self, st_free_table(), st_init_numtable(), st_insert(), st_lookup(), and type.
Referenced by iseq_s_load(), and rb_iseq_load().
| static void iseq_mark | ( | void * | ptr | ) | [static] |
Definition at line 94 of file iseq.c.
References iseq_compile_data::catch_table_ary, rb_iseq_struct::compile_data, rb_iseq_struct::coverage, rb_iseq_struct::cref_stack, iseq_compile_data::err_info, rb_iseq_struct::filename, rb_iseq_struct::filepath, rb_iseq_struct::klass, iseq_compile_data::mark_ary, rb_iseq_struct::mark_ary, rb_iseq_struct::name, rb_iseq_struct::orig, RSTRING_PTR, RUBY_GC_INFO, RUBY_MARK_ENTER, RUBY_MARK_LEAVE, and RUBY_MARK_UNLESS_NULL.
| static size_t iseq_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 126 of file iseq.c.
References rb_iseq_struct::arg_opts, rb_iseq_struct::catch_table_size, rb_iseq_struct::compile_data, rb_iseq_struct::ic_size, rb_iseq_struct::insn_info_size, rb_iseq_struct::iseq, rb_iseq_struct::iseq_encoded, rb_iseq_struct::iseq_size, rb_iseq_struct::local_table_size, iseq_compile_data_storage::next, rb_iseq_struct::orig, iseq_compile_data_storage::size, size, and iseq_compile_data::storage_head.
Definition at line 589 of file iseq.c.
References INT2FIX, NIL_P, Qnil, rb_iseq_compile_with_option(), rb_scan_args(), rb_secure(), and rb_str_new2.
Referenced by Init_ISeq().
Definition at line 603 of file iseq.c.
References FilePathValue, INT2FIX, make_compile_option(), node, NUM2INT, Qfalse, Qnil, rb_file_open_str(), rb_iseq_new_with_opt(), rb_realpath_internal(), rb_scan_args(), rb_secure(), rb_str_new2, and StringValueCStr.
Referenced by Init_ISeq().
Definition at line 638 of file iseq.c.
References make_compile_option_value().
Referenced by Init_ISeq().
Definition at line 628 of file iseq.c.
References make_compile_option(), and rb_secure().
Referenced by Init_ISeq().
Definition at line 1034 of file iseq.c.
References rb_proc_t::block, GetProcPtr, rb_block_struct::iseq, iseq_catch_table_entry::iseq, Qnil, rb_iseq_disasm(), rb_method_get_iseq(), rb_obj_is_proc(), rb_secure(), RUBY_VM_NORMAL_ISEQ_P, and rb_iseq_struct::self.
Referenced by Init_ISeq().
Definition at line 535 of file iseq.c.
References iseq_load(), Qnil, and rb_scan_args().
Referenced by Init_ISeq().
Definition at line 679 of file iseq.c.
References iseq_check(), iseq_data_to_ary(), and rb_secure().
Referenced by Init_ISeq().
| static void make_compile_option | ( | rb_compile_option_t * | option, | |
| VALUE | opt | |||
| ) | [static] |
Definition at line 316 of file iseq.c.
References CLASS_OF, Qfalse, Qnil, Qtrue, rb_cHash, rb_eTypeError, rb_raise(), SET_COMPILE_OPTION, and SET_COMPILE_OPTION_NUM.
Referenced by iseq_load(), iseq_s_compile_file(), iseq_s_compile_option_set(), and rb_iseq_compile_with_option().
| static VALUE make_compile_option_value | ( | rb_compile_option_t * | option | ) | [static] |
Definition at line 357 of file iseq.c.
References rb_hash_new(), SET_COMPILE_OPTION, and SET_COMPILE_OPTION_NUM.
Referenced by iseq_s_compile_option_get().
Definition at line 31 of file iseq.c.
References BUILTIN_TYPE, hidden_obj_p, rb_ary_resurrect(), rb_str_resurrect(), T_ARRAY, and T_STRING.
Referenced by cdhash_each(), insn_operand_intern(), and iseq_data_to_ary().
| static NODE* parse_string | ( | VALUE | str, | |
| const char * | file, | |||
| int | line | |||
| ) | [static] |
Definition at line 550 of file iseq.c.
References GET_THREAD, node, and rb_exc_raise().
| static VALUE prepare_iseq_build | ( | rb_iseq_t * | iseq, | |
| VALUE | name, | |||
| VALUE | filename, | |||
| VALUE | filepath, | |||
| VALUE | line_no, | |||
| VALUE | parent, | |||
| enum iseq_type | type, | |||
| VALUE | block_opt, | |||
| const rb_compile_option_t * | option | |||
| ) | [static] |
Definition at line 226 of file iseq.c.
References ALLOC, ALLOC_N, rb_iseq_struct::arg_block, rb_iseq_struct::arg_rest, iseq_compile_data_storage::buff, iseq_compile_data::catch_table_ary, rb_iseq_struct::compile_data, rb_iseq_struct::coverage, rb_iseq_struct::defined_method_id, iseq_compile_data::err_info, rb_iseq_struct::filename, rb_iseq_struct::filepath, GET_THREAD, INITIAL_ISEQ_COMPILE_DATA_STORAGE_BUFF_SIZE, rb_iseq_struct::klass, iseq_compile_data::last_coverable_line, rb_iseq_struct::line_no, iseq_compile_data::mark_ary, rb_iseq_struct::mark_ary, MEMZERO, rb_iseq_struct::name, iseq_compile_data_storage::next, NIL_P, OBJ_FREEZE, OBJ_UNTRUST, iseq_compile_data::option, iseq_compile_data_storage::pos, Qfalse, Qnil, Qtrue, rb_ary_new(), rb_ary_tmp_new(), rb_get_coverages(), rb_hash_lookup(), RBASIC, RTEST, set_relation(), iseq_compile_data_storage::size, iseq_compile_data::storage_current, iseq_compile_data::storage_head, and rb_iseq_struct::type.
Referenced by iseq_load(), and rb_iseq_new_with_bopt_and_opt().
| VALUE rb_iseq_build_for_ruby2cext | ( | const rb_iseq_t * | iseq_template, | |
| const rb_insn_func_t * | func, | |||
| const struct iseq_insn_info_entry * | insn_info_table, | |||
| const char ** | local_table, | |||
| const VALUE * | arg_opt_table, | |||
| const struct iseq_catch_table_entry * | catch_table, | |||
| const char * | name, | |||
| const char * | filename, | |||
| const unsigned short | line_no | |||
| ) |
Definition at line 1453 of file iseq.c.
References ALLOC_AND_COPY, ALLOC_N, rb_iseq_struct::arg_opt_table, rb_iseq_struct::arg_opts, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, rb_iseq_struct::filename, GetISeqPtr, rb_iseq_struct::insn_info_size, rb_iseq_struct::insn_info_table, rb_iseq_struct::iseq, iseq_catch_table_entry::iseq, iseq_alloc(), rb_iseq_struct::iseq_size, rb_iseq_struct::line_no, rb_iseq_struct::mark_ary, rb_iseq_struct::name, OBJ_UNTRUST, rb_ary_tmp_new(), rb_cISeq, rb_iseq_translate_threaded_code(), rb_str_new2, rb_iseq_struct::self, and set_relation().
Definition at line 583 of file iseq.c.
References Qnil, and rb_iseq_compile_with_option().
Referenced by eval_string_with_cref().
Definition at line 562 of file iseq.c.
References rb_thread_struct::base_block, GET_THREAD, rb_block_struct::iseq, make_compile_option(), rb_iseq_struct::name, node, NUM2INT, parse_string, Qfalse, rb_iseq_new_with_opt(), rb_str_new2, rb_iseq_struct::self, StringValue, and StringValueCStr.
Referenced by iseq_s_compile(), prelude_eval(), and rb_iseq_compile().
Definition at line 931 of file iseq.c.
References rb_iseq_struct::arg_block, rb_iseq_struct::arg_opt_table, rb_iseq_struct::arg_opts, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_post_start, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_simple, argc, rb_iseq_struct::argc, rb_iseq_struct::catch_table, rb_iseq_struct::catch_table_size, catch_type(), iseq_catch_table_entry::cont, iseq_catch_table_entry::end, iseq_catch_table_entry::iseq, rb_iseq_struct::iseq, iseq_check(), iseq_inspect(), rb_iseq_struct::iseq_size, rb_iseq_struct::local_size, rb_iseq_struct::local_table, rb_iseq_struct::local_table_size, name, PRIdVALUE, RARRAY_LEN, rb_ary_entry(), rb_ary_new(), rb_id2name(), rb_iseq_disasm(), rb_iseq_disasm_insn(), rb_secure(), rb_str_cat2(), rb_str_catf(), rb_str_concat(), rb_str_new(), rb_str_resize(), RSTRING_LEN, RSTRING_PTR, rb_iseq_struct::self, size, snprintf, iseq_catch_table_entry::sp, iseq_catch_table_entry::start, and iseq_catch_table_entry::type.
Referenced by eval_string_with_cref(), Init_ISeq(), iseq_s_disasm(), iseq_setup(), process_options(), and rb_iseq_disasm().
Disassemble a instruction Iseq -> Iseq inspect object.
Definition at line 849 of file iseq.c.
References find_line_no(), find_prev_line_no(), get_insn_info(), insn_operand_intern(), len, iseq_insn_info_entry::line_no, prev, PRIdSIZE, rb_str_cat2(), rb_str_catf(), rb_str_concat(), rb_str_new(), RSTRING_LEN, RSTRING_PTR, and iseq_insn_info_entry::sp.
Referenced by rb_iseq_disasm(), and rb_vmdebug_debug_print_pre().
| int rb_iseq_first_lineno | ( | rb_iseq_t * | iseq | ) |
Definition at line 687 of file iseq.c.
References FIX2INT, and rb_iseq_struct::line_no.
Referenced by iseq_location(), proc_binding(), proc_to_s(), and rb_method_entry_make().
Definition at line 544 of file iseq.c.
References iseq_load(), and rb_cISeq.
Referenced by iseq_build_from_ary_body(), and iseq_build_from_ary_exception().
| VALUE rb_iseq_new | ( | NODE * | node, | |
| VALUE | name, | |||
| VALUE | filename, | |||
| VALUE | filepath, | |||
| VALUE | parent, | |||
| enum iseq_type | type | |||
| ) |
Definition at line 380 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
Referenced by Init_VM(), and rb_vm_call_cfunc().
Definition at line 395 of file iseq.c.
References rb_thread_struct::base_block, GET_THREAD, INT2FIX, rb_block_struct::iseq, rb_iseq_new_with_opt(), rb_str_new2, and rb_iseq_struct::self.
Referenced by process_options().
Definition at line 388 of file iseq.c.
References INT2FIX, and rb_iseq_new_with_opt().
Referenced by rb_load_internal().
| VALUE rb_iseq_new_with_bopt | ( | NODE * | node, | |
| VALUE | name, | |||
| VALUE | filename, | |||
| VALUE | filepath, | |||
| VALUE | line_no, | |||
| VALUE | parent, | |||
| enum iseq_type | type, | |||
| VALUE | bopt | |||
| ) |
Definition at line 431 of file iseq.c.
References rb_iseq_new_with_bopt_and_opt().
| static VALUE rb_iseq_new_with_bopt_and_opt | ( | NODE * | node, | |
| VALUE | name, | |||
| VALUE | filename, | |||
| VALUE | filepath, | |||
| VALUE | line_no, | |||
| VALUE | parent, | |||
| enum iseq_type | type, | |||
| VALUE | bopt, | |||
| const rb_compile_option_t * | option | |||
| ) | [static] |
Definition at line 404 of file iseq.c.
References cleanup_iseq_build(), GetISeqPtr, iseq_alloc(), prepare_iseq_build(), rb_cISeq, rb_iseq_compile_node(), and rb_iseq_struct::self.
Referenced by rb_iseq_new_with_bopt(), and rb_iseq_new_with_opt().
| VALUE rb_iseq_new_with_opt | ( | NODE * | node, | |
| VALUE | name, | |||
| VALUE | filename, | |||
| VALUE | filepath, | |||
| VALUE | line_no, | |||
| VALUE | parent, | |||
| enum iseq_type | type, | |||
| const rb_compile_option_t * | option | |||
| ) |
Definition at line 421 of file iseq.c.
References Qfalse, and rb_iseq_new_with_bopt_and_opt().
Referenced by iseq_s_compile_file(), new_child_iseq(), rb_iseq_compile_with_option(), rb_iseq_new(), rb_iseq_new_main(), and rb_iseq_new_top().
Definition at line 1388 of file iseq.c.
References rb_iseq_struct::arg_block, rb_iseq_struct::arg_post_len, rb_iseq_struct::arg_post_start, rb_iseq_struct::arg_rest, rb_iseq_struct::arg_size, rb_iseq_struct::argc, args, CONST_ID, ID2SYM, PARAM, PARAM_ID, PARAM_TYPE, Qnil, rb_ary_new2(), rb_ary_push(), and rb_id2name().
Referenced by rb_method_parameters(), and rb_proc_parameters().
Definition at line 1074 of file iseq.c.
References CHAR_BIT, ID2SYM, rb_intern, snprintf, st_insert(), and sym.
Referenced by iseq_data_to_ary().
| const char* ruby_node_name | ( | int | node | ) |
Definition at line 1057 of file iseq.c.
References rb_bug().
Referenced by compile_array_(), iseq_compile_each(), iseq_set_arguments(), ruby_debug_print_node(), and setup_args().
Definition at line 178 of file iseq.c.
References rb_iseq_struct::cref_stack, GET_THREAD, GetISeqPtr, rb_iseq_struct::local_iseq, NEW_BLOCK, NOEX_PRIVATE, rb_iseq_struct::parent_iseq, rb_cObject, RTEST, rb_thread_struct::top_wrapper, rb_iseq_struct::type, and type.
Referenced by prepare_iseq_build(), and rb_iseq_build_for_ruby2cext().
const rb_compile_option_t COMPILE_OPTION_FALSE = {0} [static] |
const rb_data_type_t iseq_data_type [static] |
{
"iseq",
{
iseq_mark,
iseq_free,
iseq_memsize,
},
}
Definition at line 26 of file iseq.c.
Referenced by Init_ISeq(), insn_operand_intern(), iseq_build_from_ary_body(), rb_iseq_build_for_ruby2cext(), rb_iseq_clone(), rb_iseq_load(), and rb_iseq_new_with_bopt_and_opt().
1.6.1