summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2012-10-23 09:42:22 +0900
committerMasaki Muranaka <[email protected]>2012-10-23 09:42:22 +0900
commit6069a33089916d7059c2bd2aeddc02a3eb440520 (patch)
tree2f075f79749e207a57a0142a039626e1f465b727 /src/error.c
parente05bbd45bb328b6ce3af0056a3d314ce5068abd6 (diff)
downloadmruby-6069a33089916d7059c2bd2aeddc02a3eb440520.tar.gz
mruby-6069a33089916d7059c2bd2aeddc02a3eb440520.zip
mrb_raisef(): new function. Same as previou version of mrb_raise().
mrb_raise(): API modified. It cannot treat variable arguments.
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/error.c b/src/error.c
index 5570d35f9..858c70820 100644
--- a/src/error.c
+++ b/src/error.c
@@ -217,7 +217,15 @@ mrb_exc_raise(mrb_state *mrb, mrb_value exc)
}
void
-mrb_raise(mrb_state *mrb, struct RClass *c, const char *fmt, ...)
+mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg)
+{
+ mrb_value mesg;
+ mesg = mrb_str_new2(mrb, msg);
+ mrb_exc_raise(mrb, mrb_exc_new3(mrb, c, mesg));
+}
+
+void
+mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...)
{
va_list args;
char buf[256];
@@ -369,7 +377,7 @@ exception_call:
break;
default:
- mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%d for 0..3)", argc);
+ mrb_raisef(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%d for 0..3)", argc);
break;
}
if (argc > 0) {
@@ -391,7 +399,7 @@ mrb_make_exception(mrb_state *mrb, int argc, mrb_value *argv)
void
mrb_sys_fail(mrb_state *mrb, const char *mesg)
{
- mrb_raise(mrb, E_RUNTIME_ERROR, "%s", mesg);
+ mrb_raise(mrb, E_RUNTIME_ERROR, mesg);
}
void