From 6519aba3ba013974d63fbf5bf25b90279f412a90 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 2 May 2017 07:35:20 +0000 Subject: [PATCH] internal.h: rb_raise_static * internal.h (rb_raise_static): raise with a static message string literal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- internal.h | 5 +++++ object.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/internal.h b/internal.h index cab6c8a545..6b9c9011c3 100644 --- a/internal.h +++ b/internal.h @@ -1131,6 +1131,11 @@ 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); PRINTF_ARGS(void rb_syserr_enc_warning(int err, rb_encoding *enc, const char *fmt, ...), 3, 4); +#define rb_raise_cstr(etype, mesg) \ + rb_exc_raise(rb_exc_new_str(etype, rb_str_new_cstr(mesg))) +#define rb_raise_static(etype, mesg) \ + rb_exc_raise(rb_exc_new_str(etype, rb_str_new_static(mesg, rb_strlen_lit(mesg)))) + 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)) diff --git a/object.c b/object.c index 184a72f1fa..6c0aa040b9 100644 --- a/object.c +++ b/object.c @@ -2963,11 +2963,11 @@ rb_str_to_dbl(VALUE str, int badcheck) #define special_const_to_float(val, pre, post) \ switch (val) { \ case Qnil: \ - rb_raise(rb_eTypeError, pre "nil" post); \ + rb_raise_static(rb_eTypeError, pre "nil" post); \ case Qtrue: \ - rb_raise(rb_eTypeError, pre "true" post); \ + rb_raise_static(rb_eTypeError, pre "true" post); \ case Qfalse: \ - rb_raise(rb_eTypeError, pre "false" post); \ + rb_raise_static(rb_eTypeError, pre "false" post); \ } static inline void