summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-08-01 13:15:02 +0900
committerYukihiro Matsumoto <[email protected]>2012-08-01 13:15:02 +0900
commitd271bf0aa6e44a315802cf4246f5b92552be010a (patch)
tree012f5f192c0aad25e3b2d401241a2b1e8f10e4a9 /src/error.c
parent7511508a64250af30fdad4b7e342bb703e7af6c9 (diff)
downloadmruby-d271bf0aa6e44a315802cf4246f5b92552be010a.tar.gz
mruby-d271bf0aa6e44a315802cf4246f5b92552be010a.zip
make mrb_funcall_argv and mrb_funcall_with_block to take mrb_sym as a method name
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/error.c b/src/error.c
index e71245509..6fe839cb2 100644
--- a/src/error.c
+++ b/src/error.c
@@ -144,7 +144,7 @@ exc_equal(mrb_state *mrb, mrb_value exc)
if (mrb_obj_equal(mrb, exc, obj)) return mrb_true_value();
if (mrb_obj_class(mrb, exc) != mrb_obj_class(mrb, obj)) {
- if ( mrb_respond_to(mrb, obj, mrb_intern(mrb, "message")) ) {
+ if (mrb_respond_to(mrb, obj, mrb_intern(mrb, "message"))) {
mesg = mrb_funcall(mrb, obj, "message", 0);
}
else
@@ -306,12 +306,15 @@ make_exception(mrb_state *mrb, int argc, mrb_value *argv, int isstr)
case 3:
n = 1;
exception_call:
- if (mrb_respond_to(mrb, argv[0], mrb_intern(mrb, "exception"))) {
- mesg = mrb_funcall_argv(mrb, argv[0], "exception", n, argv+1);
- }
- else {
- /* undef */
- mrb_raise(mrb, E_TYPE_ERROR, "exception class/object expected");
+ {
+ mrb_sym exc = mrb_intern(mrb, "exception");
+ if (mrb_respond_to(mrb, argv[0], exc)) {
+ mesg = mrb_funcall_argv(mrb, argv[0], exc, n, argv+1);
+ }
+ else {
+ /* undef */
+ mrb_raise(mrb, E_TYPE_ERROR, "exception class/object expected");
+ }
}
break;