From 8ef4ff1b150beb2f032911473cc5d7f8441bc083 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 12 Apr 2018 09:34:54 +0000 Subject: error.c: fix for DRb * error.c (name_err_init_attr): hide the receiver object from Marshal, as DRb depends on it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- error.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'error.c') diff --git a/error.c b/error.c index 6dce0c8601..4606470080 100644 --- a/error.c +++ b/error.c @@ -888,7 +888,7 @@ static VALUE rb_eNOERROR; static ID id_cause, id_message, id_backtrace; static ID id_name, id_key, id_args, id_Errno, id_errno, id_i_path; -static ID id_receiver, id_iseq, id_local_variables; +static ID id_receiver, id_recv, id_iseq, id_local_variables; static ID id_private_call_p, id_top, id_bottom; #define id_bt idBt #define id_bt_locations idBt_locations @@ -1434,7 +1434,7 @@ name_err_init_attr(VALUE exc, VALUE recv, VALUE method) rb_control_frame_t *cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(ec->cfp); cfp = rb_vm_get_ruby_level_next_cfp(ec, cfp); rb_ivar_set(exc, id_name, method); - if (recv != Qundef) rb_ivar_set(exc, id_receiver, recv); + if (recv != Qundef) rb_ivar_set(exc, id_recv, recv); if (cfp) rb_ivar_set(exc, id_iseq, rb_iseqw_new(cfp->iseq)); return exc; } @@ -1700,7 +1700,7 @@ name_err_receiver(VALUE self) { VALUE *ptr, recv, mesg; - recv = rb_ivar_lookup(self, id_receiver, Qundef); + recv = rb_ivar_lookup(self, id_recv, Qundef); if (recv != Qundef) return recv; mesg = rb_attr_get(self, id_mesg); @@ -2516,6 +2516,7 @@ Init_Exception(void) id_top = rb_intern_const("top"); id_bottom = rb_intern_const("bottom"); id_iseq = rb_make_internal_id(); + id_recv = rb_make_internal_id(); } void -- cgit v1.2.3