diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-28 06:23:16 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-10-28 06:23:16 +0000 |
commit | 1d5160b390f2894482f89826d671a779384264dd (patch) | |
tree | adc7ce832f84e2c5ce96471efaf67198fb59fa87 | |
parent | 575b408efe2920e75308f22d091f0622ade13e64 (diff) | |
download | ruby-1d5160b390f2894482f89826d671a779384264dd.tar.gz |
error.c: rb_name_err_new
* error.c (rb_name_err_new): new function to create NameError
exception instance. [Feature #10881]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | error.c | 10 | ||||
-rw-r--r-- | internal.h | 5 |
3 files changed, 20 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Wed Oct 28 15:23:14 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * error.c (rb_name_err_new): new function to create NameError + exception instance. [Feature #10881] + Wed Oct 28 13:29:39 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> * parse.y (new_attr_op_assign): fix op_assign type, which is @@ -1189,6 +1189,16 @@ rb_name_err_mesg_new(VALUE mesg, VALUE recv, VALUE method) return result; } +VALUE +rb_name_err_new(VALUE mesg, VALUE recv, VALUE method) +{ + VALUE exc = rb_obj_alloc(rb_eNameError); + rb_ivar_set(exc, id_mesg, rb_name_err_mesg_new(mesg, recv, method)); + rb_ivar_set(exc, id_bt, Qnil); + rb_ivar_set(exc, id_name, method); + return exc; +} + /* :nodoc: */ static VALUE name_err_mesg_equal(VALUE obj1, VALUE obj2) diff --git a/internal.h b/internal.h index 094e4a2462..b5f40987f3 100644 --- a/internal.h +++ b/internal.h @@ -739,6 +739,11 @@ const char *rb_builtin_class_name(VALUE x); PRINTF_ARGS(void rb_enc_warn(rb_encoding *enc, const char *fmt, ...), 2, 3); PRINTF_ARGS(void rb_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3); PRINTF_ARGS(void rb_sys_enc_warning(rb_encoding *enc, const char *fmt, ...), 2, 3); +VALUE rb_name_err_new(VALUE mesg, VALUE recv, VALUE method); +#define rb_name_err_raise_str(mesg, recv, name) \ + rb_exc_raise(rb_name_err_new(mesg, recv, name)) +#define rb_name_err_raise(mesg, recv, name) \ + rb_name_err_raise_str(rb_fstring_cstr(mesg), (recv), (name)) /* eval.c */ VALUE rb_refinement_module_get_refined_class(VALUE module); |