summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval/src/eval.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-04-25 10:39:11 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-04-25 10:41:50 +0900
commit88cd807379152ea3fec5f534e5f4d6ebebd53982 (patch)
treef6b27a76821b8b92f6fc474ce56aab5795afb51b /mrbgems/mruby-eval/src/eval.c
parent03cdb8e9dd3447115530418c2b8183c94dee2a53 (diff)
downloadmruby-88cd807379152ea3fec5f534e5f4d6ebebd53982.tar.gz
mruby-88cd807379152ea3fec5f534e5f4d6ebebd53982.zip
Avoid use of `snprintf()` when DISABLE_STDIO is set; fix #3632
ref #3492 #3515 #3517
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
-rw-r--r--mrbgems/mruby-eval/src/eval.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
index 00cb2f15c..54a6aab2e 100644
--- a/mrbgems/mruby-eval/src/eval.c
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -4,6 +4,7 @@
#include <mruby/irep.h>
#include <mruby/proc.h>
#include <mruby/opcode.h>
+#include <mruby/error.h>
mrb_value mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p);
mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self);
@@ -175,12 +176,14 @@ create_proc_from_string(mrb_state *mrb, char *s, int len, mrb_value binding, con
if (0 < p->nerr) {
/* parse error */
- char buf[256];
- int n;
- n = snprintf(buf, sizeof(buf), "line %d: %s\n", p->error_buffer[0].lineno, p->error_buffer[0].message);
+ mrb_value str;
+
+ str = mrb_format(mrb, "line %S: %S",
+ mrb_fixnum_value(p->error_buffer[0].lineno),
+ mrb_str_new_cstr(mrb, p->error_buffer[0].message));
mrb_parser_free(p);
mrbc_context_free(mrb, cxt);
- mrb_exc_raise(mrb, mrb_exc_new(mrb, E_SYNTAX_ERROR, buf, n));
+ mrb_exc_raise(mrb, mrb_exc_new_str(mrb, E_SYNTAX_ERROR, str));
}
proc = mrb_generate_code(mrb, p);