Commit b231bcb8 authored by Masaki Muranaka's avatar Masaki Muranaka

load_exec(): Fix message lenghtes in mrb_exc_new().

mrb_run(): Fix not to use a magic number but sizeof.
parent 472d214a
...@@ -4875,7 +4875,8 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) ...@@ -4875,7 +4875,8 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c)
return mrb_undef_value(); return mrb_undef_value();
} }
else { else {
mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, "syntax error", 0)); static const char msg[] = "syntax error";
mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SYNTAX_ERROR, msg, sizeof(msg) - 1));
mrb_parser_free(p); mrb_parser_free(p);
return mrb_nil_value(); return mrb_nil_value();
} }
...@@ -4883,7 +4884,8 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c) ...@@ -4883,7 +4884,8 @@ load_exec(mrb_state *mrb, parser_state *p, mrbc_context *c)
n = mrb_generate_code(mrb, p->tree); n = mrb_generate_code(mrb, p->tree);
mrb_parser_free(p); mrb_parser_free(p);
if (n < 0) { if (n < 0) {
mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, "codegen error", 0)); static const char msg[] = "codegen error";
mrb->exc = (struct RObject*)mrb_object(mrb_exc_new(mrb, E_SCRIPT_ERROR, msg, sizeof(msg) - 1));
return mrb_nil_value(); return mrb_nil_value();
} }
if (c) { if (c) {
......
...@@ -905,13 +905,13 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) ...@@ -905,13 +905,13 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
if (lv == 0) stack = regs + 1; if (lv == 0) stack = regs + 1;
else { else {
struct REnv *e = uvenv(mrb, lv-1); struct REnv *e = uvenv(mrb, lv-1);
if (!e) { if (!e) {
mrb_value exc; mrb_value exc;
static const char m[] = "super called outside of method"; static const char m[] = "super called outside of method";
exc = mrb_exc_new(mrb, E_NOMETHOD_ERROR, m, sizeof(m) - 1); exc = mrb_exc_new(mrb, E_NOMETHOD_ERROR, m, sizeof(m) - 1);
mrb->exc = (struct RObject*)mrb_object(exc); mrb->exc = (struct RObject*)mrb_object(exc);
goto L_RAISE; goto L_RAISE;
} }
stack = e->stack + 1; stack = e->stack + 1;
} }
if (r == 0) { if (r == 0) {
...@@ -1598,9 +1598,10 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) ...@@ -1598,9 +1598,10 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
CASE(OP_TCLASS) { CASE(OP_TCLASS) {
/* A B R(A) := target_class */ /* A B R(A) := target_class */
if (!mrb->ci->target_class) { if (!mrb->ci->target_class) {
mrb_value exc = mrb_exc_new(mrb, E_TYPE_ERROR, "no target class or module", 25); static const char msg[] = "no target class or module";
mrb->exc = (struct RObject*)mrb_object(exc); mrb_value exc = mrb_exc_new(mrb, E_TYPE_ERROR, msg, sizeof(msg) - 1);
goto L_RAISE; mrb->exc = (struct RObject*)mrb_object(exc);
goto L_RAISE;
} }
regs[GETARG_A(i)] = mrb_obj_value(mrb->ci->target_class); regs[GETARG_A(i)] = mrb_obj_value(mrb->ci->target_class);
NEXT; NEXT;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment