Skip to content

Commit f8fa56d

Browse files
committed
Use mrb_intern2() instead of mrb_intern(). This is for avoiding overhead by strlen().
1 parent f6646f4 commit f8fa56d

12 files changed

Lines changed: 92 additions & 84 deletions

File tree

include/mruby/hash.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ mrb_value mrb_check_hash_type(mrb_state *mrb, mrb_value hash);
3333
/* RHASH_TBL allocates st_table if not available. */
3434
#define RHASH(obj) ((struct RHash*)((obj).value.p))
3535
#define RHASH_TBL(h) (RHASH(h)->ht)
36-
#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern(mrb, "ifnone"))
36+
#define RHASH_IFNONE(h) mrb_iv_get(mrb, (h), mrb_intern2(mrb, "ifnone", 6))
3737
#define RHASH_PROCDEFAULT(h) RHASH_IFNONE(h)
3838
struct kh_ht * mrb_hash_tbl(mrb_state *mrb, mrb_value hash);
3939

mrbgems/mruby-struct/src/struct.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ mrb_struct_iv_get(mrb_state *mrb, mrb_value c, const char *name)
4949
mrb_value
5050
mrb_struct_s_members(mrb_state *mrb, mrb_value klass)
5151
{
52-
mrb_value members = struct_ivar_get(mrb, klass, mrb_intern(mrb, "__members__"));
52+
mrb_value members = struct_ivar_get(mrb, klass, mrb_intern2(mrb, "__members__", 11));
5353

5454
if (mrb_nil_p(members)) {
5555
mrb_raise(mrb, E_TYPE_ERROR, "uninitialized struct");
@@ -258,7 +258,7 @@ make_struct(mrb_state *mrb, mrb_value name, mrb_value members, struct RClass * k
258258
}
259259
MRB_SET_INSTANCE_TT(c, MRB_TT_ARRAY);
260260
nstr = mrb_obj_value(c);
261-
mrb_iv_set(mrb, nstr, mrb_intern(mrb, "__members__"), members);
261+
mrb_iv_set(mrb, nstr, mrb_intern2(mrb, "__members__", 11), members);
262262

263263
mrb_define_class_method(mrb, c, "new", mrb_instance_new, ARGS_ANY());
264264
mrb_define_class_method(mrb, c, "[]", mrb_instance_new, ARGS_ANY());
@@ -393,7 +393,7 @@ num_members(mrb_state *mrb, struct RClass *klass)
393393
{
394394
mrb_value members;
395395

396-
members = struct_ivar_get(mrb, mrb_obj_value(klass), mrb_intern(mrb, "__members__"));
396+
members = struct_ivar_get(mrb, mrb_obj_value(klass), mrb_intern2(mrb, "__members__", 11));
397397
if (!mrb_array_p(members)) {
398398
mrb_raise(mrb, E_TYPE_ERROR, "broken members");
399399
}

src/array.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
301301
a1 = RARRAY(ary1); a2 = RARRAY(ary2);
302302
if (a1->len == a2->len && a1->ptr == a2->ptr) return mrb_fixnum_value(0);
303303
else {
304-
mrb_sym cmp = mrb_intern(mrb, "<=>");
304+
mrb_sym cmp = mrb_intern2(mrb, "<=>", 3);
305305

306306
len = RARRAY_LEN(ary1);
307307
if (len > RARRAY_LEN(ary2)) {
@@ -1069,7 +1069,7 @@ mrb_ary_equal(mrb_state *mrb, mrb_value ary1)
10691069
equal_p = 0;
10701070
}
10711071
else if (!mrb_array_p(ary2)) {
1072-
if (!mrb_respond_to(mrb, ary2, mrb_intern(mrb, "to_ary"))) {
1072+
if (!mrb_respond_to(mrb, ary2, mrb_intern2(mrb, "to_ary", 6))) {
10731073
equal_p = 0;
10741074
}
10751075
else {

src/class.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void
5454
mrb_name_class(mrb_state *mrb, struct RClass *c, mrb_sym name)
5555
{
5656
mrb_obj_iv_set(mrb, (struct RObject*)c,
57-
mrb_intern(mrb, "__classid__"), mrb_symbol_value(name));
57+
mrb_intern2(mrb, "__classid__", 11), mrb_symbol_value(name));
5858
}
5959

6060
#define make_metaclass(mrb, c) prepare_singleton_class((mrb), (struct RBasic*)(c))
@@ -88,7 +88,7 @@ prepare_singleton_class(mrb_state *mrb, struct RBasic *o)
8888
o->c = sc;
8989
mrb_field_write_barrier(mrb, (struct RBasic*)o, (struct RBasic*)sc);
9090
mrb_field_write_barrier(mrb, (struct RBasic*)sc, (struct RBasic*)o);
91-
mrb_obj_iv_set(mrb, (struct RObject*)sc, mrb_intern(mrb, "__attached__"), mrb_obj_value(o));
91+
mrb_obj_iv_set(mrb, (struct RObject*)sc, mrb_intern2(mrb, "__attached__", 12), mrb_obj_value(o));
9292
}
9393

9494
struct RClass*
@@ -115,15 +115,15 @@ setup_class(mrb_state *mrb, mrb_value outer, struct RClass *c, mrb_sym id)
115115
mrb_name_class(mrb, c, id);
116116
mrb_const_set(mrb, outer, id, mrb_obj_value(c));
117117
mrb_obj_iv_set(mrb, (struct RObject*)c,
118-
mrb_intern(mrb, "__outer__"), outer);
118+
mrb_intern2(mrb, "__outer__", 9), outer);
119119
}
120120

121121
struct RClass*
122122
mrb_class_outer_module(mrb_state *mrb, struct RClass *c)
123123
{
124124
mrb_value outer;
125125

126-
outer = mrb_obj_iv_get(mrb, (struct RObject*)c, mrb_intern(mrb, "__outer__"));
126+
outer = mrb_obj_iv_get(mrb, (struct RObject*)c, mrb_intern2(mrb, "__outer__", 9));
127127
if (mrb_nil_p(outer)) return 0;
128128
return mrb_class_ptr(outer);
129129
}
@@ -1138,7 +1138,7 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod)
11381138
mrb_raise(mrb, E_TYPE_ERROR, "name should be a symbol");
11391139
}
11401140

1141-
if (mrb_respond_to(mrb,mod,mrb_intern(mrb,"inspect"))){
1141+
if (mrb_respond_to(mrb,mod,mrb_intern2(mrb,"inspect",7))){
11421142
inspect = mrb_funcall(mrb, mod, "inspect", 0);
11431143
if (RSTRING_LEN(inspect) > 64) {
11441144
inspect = mrb_any_to_s(mrb, mod);
@@ -1190,8 +1190,9 @@ mrb_class_path(mrb_state *mrb, struct RClass *c)
11901190
mrb_value path;
11911191
const char *name;
11921192
size_t len;
1193+
mrb_sym classpath = mrb_intern2(mrb, "__classpath__", 13);
11931194

1194-
path = mrb_obj_iv_get(mrb, (struct RObject*)c, mrb_intern(mrb, "__classpath__"));
1195+
path = mrb_obj_iv_get(mrb, (struct RObject*)c, classpath);
11951196
if (mrb_nil_p(path)) {
11961197
struct RClass *outer = mrb_class_outer_module(mrb, c);
11971198
mrb_sym sym = mrb_class_sym(mrb, c, outer);
@@ -1208,7 +1209,7 @@ mrb_class_path(mrb_state *mrb, struct RClass *c)
12081209
name = mrb_sym2name_len(mrb, sym, &len);
12091210
path = mrb_str_new(mrb, name, len);
12101211
}
1211-
mrb_obj_iv_set(mrb, (struct RObject*)c, mrb_intern(mrb, "__classpath__"), path);
1212+
mrb_obj_iv_set(mrb, (struct RObject*)c, classpath, path);
12121213
}
12131214
return path;
12141215
}
@@ -1351,7 +1352,7 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
13511352
{
13521353
if (mrb_type(klass) == MRB_TT_SCLASS) {
13531354
mrb_value s = mrb_str_new(mrb, "#<", 2);
1354-
mrb_value v = mrb_iv_get(mrb, klass, mrb_intern(mrb, "__attached__"));
1355+
mrb_value v = mrb_iv_get(mrb, klass, mrb_intern2(mrb, "__attached__", 12));
13551356

13561357
mrb_str_cat2(mrb, s, "Class:");
13571358
switch (mrb_type(v)) {

src/codegen.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ for_body(codegen_scope *s, node *tree)
560560
s = prev;
561561
genop(s, MKOP_Abc(OP_LAMBDA, cursp(), idx - base, OP_L_BLOCK));
562562
pop();
563-
idx = new_msym(s, mrb_intern(s->mrb, "each"));
563+
idx = new_msym(s, mrb_intern2(s->mrb, "each", 4));
564564
genop(s, MKOP_ABC(OP_SENDB, cursp(), idx, 0));
565565
}
566566

@@ -959,7 +959,7 @@ static void
959959
gen_send_intern(codegen_scope *s)
960960
{
961961
pop();
962-
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern(s->mrb, "intern")), 0));
962+
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern2(s->mrb, "intern", 6)), 0));
963963
push();
964964
}
965965
static void
@@ -1151,12 +1151,12 @@ codegen(codegen_scope *s, node *tree, int val)
11511151
codegen(s, n4->car, VAL);
11521152
}
11531153
else {
1154-
genop(s, MKOP_ABx(OP_GETCONST, cursp(), new_msym(s, mrb_intern(s->mrb, "StandardError"))));
1154+
genop(s, MKOP_ABx(OP_GETCONST, cursp(), new_msym(s, mrb_intern2(s->mrb, "StandardError", 13))));
11551155
push();
11561156
}
11571157
genop(s, MKOP_AB(OP_MOVE, cursp(), exc));
11581158
pop();
1159-
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern(s->mrb, "===")), 1));
1159+
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern2(s->mrb, "===", 3)), 1));
11601160
tmp = new_label(s);
11611161
genop(s, MKOP_AsBx(OP_JMPIF, cursp(), pos2));
11621162
pos2 = tmp;
@@ -1360,7 +1360,7 @@ codegen(codegen_scope *s, node *tree, int val)
13601360
if (head) {
13611361
genop(s, MKOP_AB(OP_MOVE, cursp(), head));
13621362
pop();
1363-
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern(s->mrb, "===")), 1));
1363+
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern2(s->mrb, "===", 3)), 1));
13641364
}
13651365
else {
13661366
pop();
@@ -1701,7 +1701,7 @@ codegen(codegen_scope *s, node *tree, int val)
17011701
}
17021702
pop_n(n+1);
17031703
if (sendv) n = CALL_MAXARGS;
1704-
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern(s->mrb, "call")), n));
1704+
genop(s, MKOP_ABC(OP_SEND, cursp(), new_msym(s, mrb_intern2(s->mrb, "call", 4)), n));
17051705
if (val) push();
17061706
}
17071707
break;
@@ -1968,7 +1968,7 @@ codegen(codegen_scope *s, node *tree, int val)
19681968

19691969
default:
19701970
{
1971-
int sym = new_msym(s, mrb_intern(s->mrb, "-"));
1971+
int sym = new_msym(s, mrb_intern2(s->mrb, "-", 1));
19721972

19731973
genop(s, MKOP_ABx(OP_LOADI, cursp(), 0));
19741974
push();
@@ -2052,7 +2052,7 @@ codegen(codegen_scope *s, node *tree, int val)
20522052
pop();
20532053
}
20542054
pop();
2055-
sym = new_sym(s, mrb_intern(s->mrb, "compile"));
2055+
sym = new_sym(s, mrb_intern2(s->mrb, "compile", 7));
20562056
genop(s, MKOP_ABC(OP_SEND, cursp(), sym, argc));
20572057
mrb_gc_arena_restore(s->mrb, ai);
20582058
push();
@@ -2100,7 +2100,7 @@ codegen(codegen_scope *s, node *tree, int val)
21002100
pop();
21012101
}
21022102
pop();
2103-
sym = new_sym(s, mrb_intern(s->mrb, "compile"));
2103+
sym = new_sym(s, mrb_intern2(s->mrb, "compile", 7));
21042104
genop(s, MKOP_ABC(OP_SEND, cursp(), sym, argc));
21052105
mrb_gc_arena_restore(s->mrb, ai);
21062106
push();
@@ -2165,7 +2165,7 @@ codegen(codegen_scope *s, node *tree, int val)
21652165
{
21662166
int a = new_msym(s, sym(tree->car));
21672167
int b = new_msym(s, sym(tree->cdr));
2168-
int c = new_msym(s, mrb_intern(s->mrb, "alias_method"));
2168+
int c = new_msym(s, mrb_intern2(s->mrb, "alias_method", 12));
21692169

21702170
genop(s, MKOP_A(OP_TCLASS, cursp()));
21712171
push();
@@ -2184,7 +2184,7 @@ codegen(codegen_scope *s, node *tree, int val)
21842184

21852185
case NODE_UNDEF:
21862186
{
2187-
int undef = new_msym(s, mrb_intern(s->mrb, "undef_method"));
2187+
int undef = new_msym(s, mrb_intern2(s->mrb, "undef_method", 12));
21882188
int num = 0;
21892189
node *t = tree;
21902190

src/error.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ exc_initialize(mrb_state *mrb, mrb_value exc)
4444
mrb_value mesg;
4545

4646
if (mrb_get_args(mrb, "|o", &mesg) == 1) {
47-
mrb_iv_set(mrb, exc, mrb_intern(mrb, "mesg"), mesg);
47+
mrb_iv_set(mrb, exc, mrb_intern2(mrb, "mesg", 4), mesg);
4848
}
4949
return exc;
5050
}
@@ -73,7 +73,7 @@ exc_exception(mrb_state *mrb, mrb_value self)
7373
if (argc == 0) return self;
7474
if (mrb_obj_equal(mrb, self, a)) return self;
7575
exc = mrb_obj_clone(mrb, self);
76-
mrb_iv_set(mrb, exc, mrb_intern(mrb, "mesg"), a);
76+
mrb_iv_set(mrb, exc, mrb_intern2(mrb, "mesg", 4), a);
7777

7878
return exc;
7979
}
@@ -89,7 +89,7 @@ exc_exception(mrb_state *mrb, mrb_value self)
8989
static mrb_value
9090
exc_to_s(mrb_state *mrb, mrb_value exc)
9191
{
92-
mrb_value mesg = mrb_attr_get(mrb, exc, mrb_intern(mrb, "mesg"));
92+
mrb_value mesg = mrb_attr_get(mrb, exc, mrb_intern2(mrb, "mesg", 4));
9393

9494
if (mrb_nil_p(mesg)) return mrb_str_new_cstr(mrb, mrb_obj_classname(mrb, exc));
9595
return mesg;
@@ -123,9 +123,9 @@ exc_inspect(mrb_state *mrb, mrb_value exc)
123123
{
124124
mrb_value str, mesg, file, line;
125125

126-
mesg = mrb_attr_get(mrb, exc, mrb_intern(mrb, "mesg"));
127-
file = mrb_attr_get(mrb, exc, mrb_intern(mrb, "file"));
128-
line = mrb_attr_get(mrb, exc, mrb_intern(mrb, "line"));
126+
mesg = mrb_attr_get(mrb, exc, mrb_intern2(mrb, "mesg", 4));
127+
file = mrb_attr_get(mrb, exc, mrb_intern2(mrb, "file", 4));
128+
line = mrb_attr_get(mrb, exc, mrb_intern2(mrb, "line", 4));
129129

130130
if (!mrb_nil_p(file) && !mrb_nil_p(line)) {
131131
str = file;
@@ -161,15 +161,15 @@ exc_equal(mrb_state *mrb, mrb_value exc)
161161
mrb_value obj;
162162
mrb_value mesg;
163163
mrb_bool equal_p;
164-
mrb_sym id_mesg = mrb_intern(mrb, "mesg");
164+
mrb_sym id_mesg = mrb_intern2(mrb, "mesg", 4);
165165

166166
mrb_get_args(mrb, "o", &obj);
167167
if (mrb_obj_equal(mrb, exc, obj)) {
168168
equal_p = 1;
169169
}
170170
else {
171171
if (mrb_obj_class(mrb, exc) != mrb_obj_class(mrb, obj)) {
172-
if (mrb_respond_to(mrb, obj, mrb_intern(mrb, "message"))) {
172+
if (mrb_respond_to(mrb, obj, mrb_intern2(mrb, "message", 7))) {
173173
mesg = mrb_funcall(mrb, obj, "message", 0);
174174
}
175175
else
@@ -191,15 +191,15 @@ exc_debug_info(mrb_state *mrb, struct RObject *exc)
191191
mrb_callinfo *ci = mrb->ci;
192192
mrb_code *pc = ci->pc;
193193

194-
mrb_obj_iv_set(mrb, exc, mrb_intern(mrb, "ciidx"), mrb_fixnum_value(ci - mrb->cibase));
194+
mrb_obj_iv_set(mrb, exc, mrb_intern2(mrb, "ciidx", 5), mrb_fixnum_value(ci - mrb->cibase));
195195
ci--;
196196
while (ci >= mrb->cibase) {
197197
if (ci->proc && !MRB_PROC_CFUNC_P(ci->proc)) {
198198
mrb_irep *irep = ci->proc->body.irep;
199199

200200
if (irep->filename && irep->lines && irep->iseq <= pc && pc < irep->iseq + irep->ilen) {
201-
mrb_obj_iv_set(mrb, exc, mrb_intern(mrb, "file"), mrb_str_new_cstr(mrb, irep->filename));
202-
mrb_obj_iv_set(mrb, exc, mrb_intern(mrb, "line"), mrb_fixnum_value(irep->lines[pc - irep->iseq - 1]));
201+
mrb_obj_iv_set(mrb, exc, mrb_intern2(mrb, "file", 4), mrb_str_new_cstr(mrb, irep->filename));
202+
mrb_obj_iv_set(mrb, exc, mrb_intern2(mrb, "line", 4), mrb_fixnum_value(irep->lines[pc - irep->iseq - 1]));
203203
return;
204204
}
205205
}
@@ -335,7 +335,7 @@ mrb_bug_errno(const char *mesg, int errno_arg)
335335
int
336336
sysexit_status(mrb_state *mrb, mrb_value err)
337337
{
338-
mrb_value st = mrb_iv_get(mrb, err, mrb_intern(mrb, "status"));
338+
mrb_value st = mrb_iv_get(mrb, err, mrb_intern2(mrb, "status", 6));
339339
return mrb_fixnum(st);
340340
}
341341

@@ -373,7 +373,7 @@ make_exception(mrb_state *mrb, int argc, mrb_value *argv, int isstr)
373373
n = 1;
374374
exception_call:
375375
{
376-
mrb_sym exc = mrb_intern(mrb, "exception");
376+
mrb_sym exc = mrb_intern2(mrb, "exception", 9);
377377
if (mrb_respond_to(mrb, argv[0], exc)) {
378378
mesg = mrb_funcall_argv(mrb, argv[0], exc, n, argv+1);
379379
}

src/hash.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ mrb_hash_init_core(mrb_state *mrb, mrb_value hash)
262262
RHASH(hash)->flags |= MRB_HASH_PROC_DEFAULT;
263263
ifnone = block;
264264
}
265-
mrb_iv_set(mrb, hash, mrb_intern(mrb, "ifnone"), ifnone);
265+
mrb_iv_set(mrb, hash, mrb_intern2(mrb, "ifnone", 6), ifnone);
266266
return hash;
267267
}
268268

@@ -427,7 +427,7 @@ mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
427427

428428
mrb_get_args(mrb, "o", &ifnone);
429429
mrb_hash_modify(mrb, hash);
430-
mrb_iv_set(mrb, hash, mrb_intern(mrb, "ifnone"), ifnone);
430+
mrb_iv_set(mrb, hash, mrb_intern2(mrb, "ifnone", 6), ifnone);
431431
RHASH(hash)->flags &= ~(MRB_HASH_PROC_DEFAULT);
432432

433433
return ifnone;
@@ -478,7 +478,7 @@ mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
478478

479479
mrb_get_args(mrb, "o", &ifnone);
480480
mrb_hash_modify(mrb, hash);
481-
mrb_iv_set(mrb, hash, mrb_intern(mrb, "ifnone"), ifnone);
481+
mrb_iv_set(mrb, hash, mrb_intern2(mrb, "ifnone", 6), ifnone);
482482
RHASH(hash)->flags |= MRB_HASH_PROC_DEFAULT;
483483

484484
return ifnone;
@@ -759,7 +759,7 @@ mrb_hash_replace(mrb_state *mrb, mrb_value hash)
759759
else {
760760
ifnone = RHASH_IFNONE(hash2);
761761
}
762-
mrb_iv_set(mrb, hash, mrb_intern(mrb, "ifnone"), ifnone);
762+
mrb_iv_set(mrb, hash, mrb_intern2(mrb, "ifnone", 6), ifnone);
763763

764764
return hash;
765765
}
@@ -1104,7 +1104,7 @@ hash_equal(mrb_state *mrb, mrb_value hash1, mrb_value hash2, int eql)
11041104

11051105
if (mrb_obj_equal(mrb, hash1, hash2)) return mrb_true_value();
11061106
if (!mrb_hash_p(hash2)) {
1107-
if (!mrb_respond_to(mrb, hash2, mrb_intern(mrb, "to_hash"))) {
1107+
if (!mrb_respond_to(mrb, hash2, mrb_intern2(mrb, "to_hash", 7))) {
11081108
return mrb_false_value();
11091109
}
11101110
if (eql)

src/kernel.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ typedef enum {
2929
int
3030
mrb_obj_basic_to_s_p(mrb_state *mrb, mrb_value obj)
3131
{
32-
struct RProc *me = mrb_method_search(mrb, mrb_class(mrb, obj), mrb_intern(mrb, "to_s"));
32+
struct RProc *me = mrb_method_search(mrb, mrb_class(mrb, obj), mrb_intern2(mrb, "to_s", 4));
3333
if (me && MRB_PROC_CFUNC_P(me) && (me->body.func == mrb_any_to_s))
3434
return TRUE;
3535
return FALSE;
@@ -283,7 +283,7 @@ mrb_singleton_class_clone(mrb_state *mrb, mrb_value obj)
283283
clone->super = klass->super;
284284
if (klass->iv) {
285285
mrb_iv_copy(mrb, mrb_obj_value(clone), mrb_obj_value(klass));
286-
mrb_obj_iv_set(mrb, (struct RObject*)clone, mrb_intern(mrb, "__attached__"), obj);
286+
mrb_obj_iv_set(mrb, (struct RObject*)clone, mrb_intern2(mrb, "__attached__", 12), obj);
287287
}
288288
if (klass->mt) {
289289
clone->mt = kh_copy(mt, mrb, klass->mt);
@@ -928,7 +928,7 @@ mrb_f_raise(mrb_state *mrb, mrb_value self)
928928
/* fall through */
929929
default:
930930
exc = mrb_make_exception(mrb, argc, a);
931-
mrb_obj_iv_set(mrb, mrb_obj_ptr(exc), mrb_intern(mrb, "lastpc"), mrb_voidp_value(mrb->ci->pc));
931+
mrb_obj_iv_set(mrb, mrb_obj_ptr(exc), mrb_intern2(mrb, "lastpc", 6), mrb_voidp_value(mrb->ci->pc));
932932
mrb_exc_raise(mrb, exc);
933933
break;
934934
}

0 commit comments

Comments
 (0)