mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
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
This commit is contained in:
parent
301143273a
commit
dce00119c6
2 changed files with 7 additions and 3 deletions
5
vm.c
5
vm.c
|
@ -2130,11 +2130,12 @@ rb_vm_mark(void *ptr)
|
||||||
RUBY_MARK_LEAVE("vm");
|
RUBY_MARK_LEAVE("vm");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef rb_vm_register_special_exception
|
||||||
void
|
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();
|
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_TAINT(exc);
|
||||||
OBJ_FREEZE(exc);
|
OBJ_FREEZE(exc);
|
||||||
((VALUE *)vm->special_exceptions)[sp] = 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);
|
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_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);
|
void rb_gc_mark_machine_stack(rb_thread_t *th);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue