diff options
Diffstat (limited to 'vm_method.c')
-rw-r--r-- | vm_method.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/vm_method.c b/vm_method.c index 8d08272d02..e59a161cc2 100644 --- a/vm_method.c +++ b/vm_method.c @@ -562,11 +562,15 @@ void rb_add_method_iseq(VALUE klass, ID mid, VALUE iseqval, rb_cref_t *cref, rb_method_visibility_t visi) { rb_iseq_t *iseq; + struct { /* should be same fields with rb_method_iseq_struct */ + rb_iseq_t *iseqptr; + rb_cref_t *cref; + } iseq_body; + GetISeqPtr(iseqval, iseq); - { - rb_method_iseq_t iseq_body = {iseq, cref}; - rb_add_method(klass, mid, VM_METHOD_TYPE_ISEQ, &iseq_body, visi); - } + iseq_body.iseqptr = iseq; + iseq_body.cref = cref; + rb_add_method(klass, mid, VM_METHOD_TYPE_ISEQ, &iseq_body, visi); } static rb_method_entry_t * |