@@ -63,7 +63,7 @@ args_unshift(mrb_state *mrb, mrb_value obj)
6363 mrb_ary_unshift (mrb , * argv , obj );
6464}
6565
66- static struct RProc *
66+ static const struct RProc *
6767method_missing_prepare (mrb_state * mrb , mrb_sym * mid , mrb_value recv , struct RClass * * tc )
6868{
6969 const mrb_sym id_method_missing = MRB_SYM (method_missing );
@@ -83,10 +83,11 @@ method_missing_prepare(mrb_state *mrb, mrb_sym *mid, mrb_value recv, struct RCla
8383 goto method_missing ;
8484 }
8585
86- struct RProc * proc ;
86+ const struct RProc * proc ;
8787 if (MRB_METHOD_FUNC_P (m )) {
88- proc = mrb_proc_new_cfunc (mrb , MRB_METHOD_FUNC (m ));
89- MRB_PROC_SET_TARGET_CLASS (proc , * tc );
88+ struct RProc * p = mrb_proc_new_cfunc (mrb , MRB_METHOD_FUNC (m ));
89+ MRB_PROC_SET_TARGET_CLASS (p , * tc );
90+ proc = p ;
9091 }
9192 else {
9293 proc = MRB_METHOD_PROC (m );
@@ -104,7 +105,7 @@ method_object_alloc(mrb_state *mrb, struct RClass *mclass)
104105 return MRB_OBJ_ALLOC (mrb , MRB_TT_OBJECT , mclass );
105106}
106107
107- static struct RProc *
108+ static const struct RProc *
108109method_extract_proc (mrb_state * mrb , mrb_value self )
109110{
110111 mrb_value obj = mrb_iv_get (mrb , self , MRB_SYM (_proc ));
@@ -230,7 +231,7 @@ method_eql(mrb_state *mrb, mrb_value self)
230231static mrb_value
231232mcall (mrb_state * mrb , mrb_value self , mrb_value recv )
232233{
233- struct RProc * proc = method_extract_proc (mrb , self );
234+ const struct RProc * proc = method_extract_proc (mrb , self );
234235 mrb_sym mid = method_extract_mid (mrb , self );
235236 struct RClass * tc = method_extract_owner (mrb , self );
236237
@@ -282,7 +283,7 @@ method_unbind(mrb_state *mrb, mrb_value self)
282283 return mrb_obj_value (ume );
283284}
284285
285- static struct RProc *
286+ static const struct RProc *
286287method_search_vm (mrb_state * mrb , struct RClass * * cp , mrb_sym mid )
287288{
288289 mrb_method_t m = mrb_method_search_vm (mrb , cp , mid );
@@ -320,7 +321,7 @@ method_super_method(mrb_state *mrb, mrb_value self)
320321 super = mrb_class_ptr (owner )-> super ;
321322 }
322323
323- struct RProc * proc = method_search_vm (mrb , & super , mrb_symbol (name ));
324+ const struct RProc * proc = method_search_vm (mrb , & super , mrb_symbol (name ));
324325 if (!proc ) return mrb_nil_value ();
325326
326327 if (!super ) return mrb_nil_value ();
@@ -330,7 +331,7 @@ method_super_method(mrb_state *mrb, mrb_value self)
330331 mrb_obj_iv_set (mrb , me , MRB_SYM (_owner ), mrb_obj_value (super ));
331332 mrb_obj_iv_set (mrb , me , MRB_SYM (_recv ), recv );
332333 mrb_obj_iv_set (mrb , me , MRB_SYM (_name ), name );
333- mrb_obj_iv_set (mrb , me , MRB_SYM (_proc ), mrb_obj_value (proc ));
334+ mrb_obj_iv_set (mrb , me , MRB_SYM (_proc ), mrb_obj_value (( void * ) proc ));
334335 mrb_obj_iv_set (mrb , me , MRB_SYM (_klass ), mrb_obj_value (super ));
335336
336337 return mrb_obj_value (me );
@@ -432,7 +433,7 @@ method_to_s(mrb_state *mrb, mrb_value self)
432433}
433434
434435static mrb_bool
435- search_method_owner (mrb_state * mrb , struct RClass * c , mrb_value obj , mrb_sym name , struct RClass * * owner , struct RProc * * proc , mrb_bool unbound )
436+ search_method_owner (mrb_state * mrb , struct RClass * c , mrb_value obj , mrb_sym name , struct RClass * * owner , const struct RProc * * proc , mrb_bool unbound )
436437{
437438 * owner = c ;
438439 * proc = method_search_vm (mrb , owner , name );
@@ -462,7 +463,7 @@ static mrb_value
462463method_alloc (mrb_state * mrb , struct RClass * c , mrb_value obj , mrb_sym name , mrb_bool unbound , mrb_bool singleton )
463464{
464465 struct RClass * owner ;
465- struct RProc * proc ;
466+ const struct RProc * proc ;
466467
467468 if (!search_method_owner (mrb , c , obj , name , & owner , & proc , unbound )) {
468469 if (singleton ) {
@@ -482,7 +483,7 @@ method_alloc(mrb_state *mrb, struct RClass *c, mrb_value obj, mrb_sym name, mrb_
482483 mrb_obj_iv_set (mrb , me , MRB_SYM (_owner ), mrb_obj_value (owner ));
483484 mrb_obj_iv_set (mrb , me , MRB_SYM (_recv ), unbound ? mrb_nil_value () : obj );
484485 mrb_obj_iv_set (mrb , me , MRB_SYM (_name ), mrb_symbol_value (name ));
485- mrb_obj_iv_set (mrb , me , MRB_SYM (_proc ), proc ? mrb_obj_value (proc ) : mrb_nil_value ());
486+ mrb_obj_iv_set (mrb , me , MRB_SYM (_proc ), proc ? mrb_obj_value (( void * ) proc ) : mrb_nil_value ());
486487 mrb_obj_iv_set (mrb , me , MRB_SYM (_klass ), mrb_obj_value (c ));
487488
488489 return mrb_obj_value (me );
0 commit comments