зеркало из https://github.com/github/ruby.git
* method.h: constify rb_method_iseq_t::iseqptr.
* proc.c (rb_method_entry_min_max_arity): catch up this fix. * vm_insnhelper.c (def_iseq_ptr): constify. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
fd70f7c4ca
Коммит
c5618920ed
|
@ -1,3 +1,11 @@
|
|||
Wed Jul 22 06:17:35 2015 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* method.h: constify rb_method_iseq_t::iseqptr.
|
||||
|
||||
* proc.c (rb_method_entry_min_max_arity): catch up this fix.
|
||||
|
||||
* vm_insnhelper.c (def_iseq_ptr): constify.
|
||||
|
||||
Wed Jul 22 03:37:39 2015 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* gc.c (internal_object_p): Now a singleton classes appear by
|
||||
|
|
2
method.h
2
method.h
|
@ -121,7 +121,7 @@ typedef enum {
|
|||
typedef struct rb_iseq_struct rb_iseq_t;
|
||||
|
||||
typedef struct rb_method_iseq_struct {
|
||||
rb_iseq_t * const iseqptr; /* should be separated from iseqval */
|
||||
const rb_iseq_t * const iseqptr; /* should be separated from iseqval */
|
||||
rb_cref_t * const cref; /* shoudl be marked */
|
||||
} rb_method_iseq_t; /* check rb_add_method_iseq() when modify the fields */
|
||||
|
||||
|
|
2
proc.c
2
proc.c
|
@ -2056,7 +2056,7 @@ rb_method_entry_min_max_arity(const rb_method_entry_t *me, int *max)
|
|||
case VM_METHOD_TYPE_BMETHOD:
|
||||
return rb_proc_min_max_arity(def->body.proc, max);
|
||||
case VM_METHOD_TYPE_ISEQ: {
|
||||
rb_iseq_t *iseq = def->body.iseq.iseqptr;
|
||||
const rb_iseq_t *iseq = def->body.iseq.iseqptr;
|
||||
return rb_iseq_min_max_arity(iseq, max);
|
||||
}
|
||||
case VM_METHOD_TYPE_UNDEF:
|
||||
|
|
|
@ -1331,7 +1331,7 @@ vm_callee_setup_arg(rb_thread_t *th, rb_call_info_t *ci, const rb_iseq_t *iseq,
|
|||
}
|
||||
}
|
||||
|
||||
static rb_iseq_t *
|
||||
static const rb_iseq_t *
|
||||
def_iseq_ptr(rb_method_definition_t *def)
|
||||
{
|
||||
#if VM_CHECK_MODE > 0
|
||||
|
@ -1364,7 +1364,7 @@ vm_call_iseq_setup_normal(rb_thread_t *th, rb_control_frame_t *cfp, rb_call_info
|
|||
int i, local_size;
|
||||
VALUE *argv = cfp->sp - ci->argc;
|
||||
const rb_callable_method_entry_t *me = ci->me;
|
||||
rb_iseq_t *iseq = def_iseq_ptr(me->def);
|
||||
const rb_iseq_t *iseq = def_iseq_ptr(me->def);
|
||||
VALUE *sp = argv + iseq->param.size;
|
||||
|
||||
/* clear local variables (arg_size...local_size) */
|
||||
|
@ -1386,7 +1386,7 @@ vm_call_iseq_setup_tailcall(rb_thread_t *th, rb_control_frame_t *cfp, rb_call_in
|
|||
int i;
|
||||
VALUE *argv = cfp->sp - ci->argc;
|
||||
const rb_callable_method_entry_t *me = ci->me;
|
||||
rb_iseq_t *iseq = def_iseq_ptr(me->def);
|
||||
const rb_iseq_t *iseq = def_iseq_ptr(me->def);
|
||||
VALUE *src_argv = argv;
|
||||
VALUE *sp_orig, *sp;
|
||||
VALUE finish_flag = VM_FRAME_TYPE_FINISH_P(cfp) ? VM_FRAME_FLAG_FINISH : 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче