Skip to content

Commit

Permalink
Don't redefine #rb_intern over and over again
Browse files Browse the repository at this point in the history
  • Loading branch information
MSNexploder authored and nobu committed Oct 21, 2020
1 parent d497436 commit 8c2e5bb
Show file tree
Hide file tree
Showing 23 changed files with 180 additions and 241 deletions.
3 changes: 0 additions & 3 deletions array.c
Expand Up @@ -8018,9 +8018,6 @@ rb_ary_deconstruct(VALUE ary)
void
Init_Array(void)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)

rb_cArray = rb_define_class("Array", rb_cObject);
rb_include_module(rb_cArray, rb_mEnumerable);

Expand Down
3 changes: 0 additions & 3 deletions compar.c
Expand Up @@ -294,9 +294,6 @@ cmp_clamp(int argc, VALUE *argv, VALUE x)
void
Init_Comparable(void)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)

rb_mComparable = rb_define_module("Comparable");
rb_define_method(rb_mComparable, "==", cmp_equal, 1);
rb_define_method(rb_mComparable, ">", cmp_gt, 1);
Expand Down
32 changes: 15 additions & 17 deletions compile.c
Expand Up @@ -9134,18 +9134,16 @@ register_label(rb_iseq_t *iseq, struct st_table *labels_table, VALUE obj)
static VALUE
get_exception_sym2type(VALUE sym)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)
static VALUE symRescue, symEnsure, symRetry;
static VALUE symBreak, symRedo, symNext;

if (symRescue == 0) {
symRescue = ID2SYM(rb_intern("rescue"));
symEnsure = ID2SYM(rb_intern("ensure"));
symRetry = ID2SYM(rb_intern("retry"));
symBreak = ID2SYM(rb_intern("break"));
symRedo = ID2SYM(rb_intern("redo"));
symNext = ID2SYM(rb_intern("next"));
symRescue = ID2SYM(rb_intern_const("rescue"));
symEnsure = ID2SYM(rb_intern_const("ensure"));
symRetry = ID2SYM(rb_intern_const("retry"));
symBreak = ID2SYM(rb_intern_const("break"));
symRedo = ID2SYM(rb_intern_const("redo"));
symNext = ID2SYM(rb_intern_const("next"));
}

if (sym == symRescue) return CATCH_TYPE_RESCUE;
Expand Down Expand Up @@ -9211,7 +9209,7 @@ insn_make_insn_table(void)
table = st_init_numtable_with_size(VM_INSTRUCTION_SIZE);

for (i=0; i<VM_INSTRUCTION_SIZE; i++) {
st_insert(table, ID2SYM(rb_intern(insn_name(i))), i);
st_insert(table, ID2SYM(rb_intern_const(insn_name(i))), i);
}

return table;
Expand Down Expand Up @@ -9246,10 +9244,10 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)
struct rb_callinfo_kwarg *kw_arg = 0;

if (!NIL_P(op)) {
VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern("mid")));
VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern("flag")));
VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern("orig_argc")));
VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern("kw_arg")));
VALUE vmid = rb_hash_aref(op, ID2SYM(rb_intern_const("mid")));
VALUE vflag = rb_hash_aref(op, ID2SYM(rb_intern_const("flag")));
VALUE vorig_argc = rb_hash_aref(op, ID2SYM(rb_intern_const("orig_argc")));
VALUE vkw_arg = rb_hash_aref(op, ID2SYM(rb_intern_const("kw_arg")));

if (!NIL_P(vmid)) mid = SYM2ID(vmid);
if (!NIL_P(vflag)) flag = NUM2UINT(vflag);
Expand Down Expand Up @@ -9278,7 +9276,7 @@ iseq_build_callinfo_from_hash(rb_iseq_t *iseq, VALUE op)
static rb_event_flag_t
event_name_to_flag(VALUE sym)
{
#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern(#ev))) return ev;
#define CHECK_EVENT(ev) if (sym == ID2SYM(rb_intern_const(#ev))) return ev;
CHECK_EVENT(RUBY_EVENT_LINE);
CHECK_EVENT(RUBY_EVENT_CLASS);
CHECK_EVENT(RUBY_EVENT_END);
Expand Down Expand Up @@ -9483,7 +9481,7 @@ iseq_build_kw(rb_iseq_t *iseq, VALUE params, VALUE keywords)
iseq->body->param.flags.has_kw = TRUE;

keyword->num = len;
#define SYM(s) ID2SYM(rb_intern(#s))
#define SYM(s) ID2SYM(rb_intern_const(#s))
(void)int_param(&keyword->bits_start, params, SYM(kwbits));
i = keyword->bits_start - keyword->num;
ids = (ID *)&iseq->body->local_table[i];
Expand Down Expand Up @@ -9596,15 +9594,15 @@ void
rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE params,
VALUE exception, VALUE body)
{
#define SYM(s) ID2SYM(rb_intern(#s))
#define SYM(s) ID2SYM(rb_intern_const(#s))
int i, len;
unsigned int arg_size, local_size, stack_max;
ID *tbl;
struct st_table *labels_table = st_init_numtable();
VALUE labels_wrapper = Data_Wrap_Struct(0, rb_mark_set, st_free_table, labels_table);
VALUE arg_opt_labels = rb_hash_aref(params, SYM(opt));
VALUE keywords = rb_hash_aref(params, SYM(keyword));
VALUE sym_arg_rest = ID2SYM(rb_intern("#arg_rest"));
VALUE sym_arg_rest = ID2SYM(rb_intern_const("#arg_rest"));
DECL_ANCHOR(anchor);
INIT_ANCHOR(anchor);

Expand Down
25 changes: 11 additions & 14 deletions complex.c
Expand Up @@ -2337,20 +2337,17 @@ void
Init_Complex(void)
{
VALUE compat;
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)

id_abs = rb_intern("abs");
id_arg = rb_intern("arg");
id_denominator = rb_intern("denominator");
id_numerator = rb_intern("numerator");
id_real_p = rb_intern("real?");
id_i_real = rb_intern("@real");
id_i_imag = rb_intern("@image"); /* @image, not @imag */
id_finite_p = rb_intern("finite?");
id_infinite_p = rb_intern("infinite?");
id_rationalize = rb_intern("rationalize");
id_PI = rb_intern("PI");
id_abs = rb_intern_const("abs");
id_arg = rb_intern_const("arg");
id_denominator = rb_intern_const("denominator");
id_numerator = rb_intern_const("numerator");
id_real_p = rb_intern_const("real?");
id_i_real = rb_intern_const("@real");
id_i_imag = rb_intern_const("@image"); /* @image, not @imag */
id_finite_p = rb_intern_const("finite?");
id_infinite_p = rb_intern_const("infinite?");
id_rationalize = rb_intern_const("rationalize");
id_PI = rb_intern_const("PI");

rb_cComplex = rb_define_class("Complex", rb_cNumeric);

Expand Down
2 changes: 0 additions & 2 deletions encoding.c
Expand Up @@ -2145,8 +2145,6 @@ rb_enc_aliases(VALUE klass)
void
Init_Encoding(void)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)
VALUE list;
int i;

Expand Down
5 changes: 1 addition & 4 deletions enum.c
Expand Up @@ -4172,9 +4172,6 @@ enum_uniq(VALUE obj)
void
Init_Enumerable(void)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)

rb_mEnumerable = rb_define_module("Enumerable");

rb_define_method(rb_mEnumerable, "to_a", enum_to_a, -1);
Expand Down Expand Up @@ -4236,5 +4233,5 @@ Init_Enumerable(void)
rb_define_method(rb_mEnumerable, "sum", enum_sum, -1);
rb_define_method(rb_mEnumerable, "uniq", enum_uniq, 0);

id_next = rb_intern("next");
id_next = rb_intern_const("next");
}
11 changes: 4 additions & 7 deletions ext/date/date_core.c
Expand Up @@ -9116,13 +9116,10 @@ d_lite_zero(VALUE x)
void
Init_date_core(void)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)

id_cmp = rb_intern("<=>");
id_le_p = rb_intern("<=");
id_ge_p = rb_intern(">=");
id_eqeq_p = rb_intern("==");
id_cmp = rb_intern_const("<=>");
id_le_p = rb_intern_const("<=");
id_ge_p = rb_intern_const(">=");
id_eqeq_p = rb_intern_const("==");

half_days_in_day = rb_rational_new2(INT2FIX(1), INT2FIX(2));

Expand Down

0 comments on commit 8c2e5bb

Please sign in to comment.