diff options
| author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-09 04:01:07 +0000 |
|---|---|---|
| committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-04-09 04:01:07 +0000 |
| commit | dce00119c6173eb2557df64d365bd858ccf3c7ba (patch) | |
| tree | 025256cb03206aaa71ac7293a4a34095606debab | |
| parent | 301143273a9b0cab08ff78d788674426281c324c (diff) | |
special exception messages are static
* vm_core.h (rb_vm_register_special_exception): make the contents
of special exception messages static.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | vm.c | 5 | ||||
| -rw-r--r-- | vm_core.h | 5 |
2 files changed, 7 insertions, 3 deletions
@@ -2130,11 +2130,12 @@ rb_vm_mark(void *ptr) RUBY_MARK_LEAVE("vm"); } +#undef rb_vm_register_special_exception void -rb_vm_register_special_exception(enum ruby_special_exceptions sp, VALUE cls, const char *mesg) +rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE cls, VALUE mesg) { rb_vm_t *vm = GET_VM(); - VALUE exc = rb_exc_new3(cls, rb_obj_freeze(rb_str_new2(mesg))); + VALUE exc = rb_exc_new3(cls, rb_obj_freeze(mesg)); OBJ_TAINT(exc); OBJ_FREEZE(exc); ((VALUE *)vm->special_exceptions)[sp] = exc; @@ -1466,7 +1466,10 @@ void ruby_thread_init_stack(rb_thread_t *th); int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, ID *called_idp, VALUE *klassp); void rb_vm_rewind_cfp(rb_thread_t *th, rb_control_frame_t *cfp); -void rb_vm_register_special_exception(enum ruby_special_exceptions sp, VALUE exception_class, const char *mesg); +void rb_vm_register_special_exception_str(enum ruby_special_exceptions sp, VALUE exception_class, VALUE mesg); + +#define rb_vm_register_special_exception(sp, e, m) \ + rb_vm_register_special_exception_str(sp, e, rb_usascii_str_new_static((m), (long)rb_strlen_lit(m))) void rb_gc_mark_machine_stack(rb_thread_t *th); |
