diff options
| author | Masaki Muranaka <[email protected]> | 2012-10-23 09:42:22 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2012-10-23 09:42:22 +0900 |
| commit | 6069a33089916d7059c2bd2aeddc02a3eb440520 (patch) | |
| tree | 2f075f79749e207a57a0142a039626e1f465b727 /src/error.c | |
| parent | e05bbd45bb328b6ce3af0056a3d314ce5068abd6 (diff) | |
| download | mruby-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.c | 14 |
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 |
