ruby-changes:53223
From: ko1 <ko1@a...>
Date: Tue, 30 Oct 2018 12:22:03 +0900 (JST)
Subject: [ruby-changes:53223] ko1:r65438 (trunk): use RARRAY_AREF() instead of RARRAY_CONST_PTR().
ko1 2018-10-30 12:21:56 +0900 (Tue, 30 Oct 2018) New Revision: 65438 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=65438 Log: use RARRAY_AREF() instead of RARRAY_CONST_PTR(). Modified files: trunk/array.c trunk/compile.c trunk/gc.c trunk/random.c trunk/thread.c trunk/thread_pthread.c Index: random.c =================================================================== --- random.c (revision 65437) +++ random.c (revision 65438) @@ -775,19 +775,17 @@ random_load(VALUE obj, VALUE dump) https://github.com/ruby/ruby/blob/trunk/random.c#L775 rb_random_t *rnd = get_rnd(obj); struct MT *mt = &rnd->mt; VALUE state, left = INT2FIX(1), seed = INT2FIX(0); - const VALUE *ary; unsigned long x; rb_check_copyable(obj, dump); Check_Type(dump, T_ARRAY); - ary = RARRAY_CONST_PTR(dump); switch (RARRAY_LEN(dump)) { case 3: - seed = ary[2]; + seed = RARRAY_AREF(dump, 2); case 2: - left = ary[1]; + left = RARRAY_AREF(dump, 1); case 1: - state = ary[0]; + state = RARRAY_AREF(dump, 0); break; default: rb_raise(rb_eArgError, "wrong dump data"); Index: compile.c =================================================================== --- compile.c (revision 65437) +++ compile.c (revision 65438) @@ -7754,7 +7754,6 @@ iseq_build_from_ary_exception(rb_iseq_t https://github.com/ruby/ruby/blob/trunk/compile.c#L7754 for (i=0; i<RARRAY_LEN(exception); i++) { const rb_iseq_t *eiseq; VALUE v, type; - const VALUE *ptr; LABEL *lstart, *lend, *lcont; unsigned int sp; @@ -7762,19 +7761,18 @@ iseq_build_from_ary_exception(rb_iseq_t https://github.com/ruby/ruby/blob/trunk/compile.c#L7761 if (RARRAY_LEN(v) != 6) { rb_raise(rb_eSyntaxError, "wrong exception entry"); } - ptr = RARRAY_CONST_PTR(v); - type = get_exception_sym2type(ptr[0]); - if (ptr[1] == Qnil) { + type = get_exception_sym2type(RARRAY_AREF(v, 0)); + if (RARRAY_AREF(v, 1) == Qnil) { eiseq = NULL; } else { - eiseq = rb_iseqw_to_iseq(rb_iseq_load(ptr[1], (VALUE)iseq, Qnil)); - } + eiseq = rb_iseqw_to_iseq(rb_iseq_load(RARRAY_AREF(v, 1), (VALUE)iseq, Qnil)); + } - lstart = register_label(iseq, labels_table, ptr[2]); - lend = register_label(iseq, labels_table, ptr[3]); - lcont = register_label(iseq, labels_table, ptr[4]); - sp = NUM2UINT(ptr[5]); + lstart = register_label(iseq, labels_table, RARRAY_AREF(v, 2)); + lend = register_label(iseq, labels_table, RARRAY_AREF(v, 3)); + lcont = register_label(iseq, labels_table, RARRAY_AREF(v, 4)); + sp = NUM2UINT(RARRAY_AREF(v, 5)); /* TODO: Dirty Hack! Fix me */ if (type == CATCH_TYPE_RESCUE || @@ -7882,7 +7880,6 @@ iseq_build_from_ary_body(rb_iseq_t *iseq https://github.com/ruby/ruby/blob/trunk/compile.c#L7880 VALUE body, VALUE labels_wrapper) { /* TODO: body should be frozen */ - const VALUE *ptr = RARRAY_CONST_PTR(body); long i, len = RARRAY_LEN(body); struct st_table *labels_table = DATA_PTR(labels_wrapper); int j; @@ -7899,7 +7896,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq https://github.com/ruby/ruby/blob/trunk/compile.c#L7896 } for (i=0; i<len; i++) { - VALUE obj = ptr[i]; + VALUE obj = RARRAY_AREF(body, i); if (SYMBOL_P(obj)) { rb_event_flag_t event; Index: thread_pthread.c =================================================================== --- thread_pthread.c (revision 65437) +++ thread_pthread.c (revision 65438) @@ -1615,18 +1615,17 @@ native_set_thread_name(rb_thread_t *th) https://github.com/ruby/ruby/blob/trunk/thread_pthread.c#L1615 SET_CURRENT_THREAD_NAME(RSTRING_PTR(loc)); } else if (!NIL_P(loc = rb_proc_location(th->first_proc))) { - const VALUE *ptr = RARRAY_CONST_PTR(loc); /* [ String, Integer ] */ char *name, *p; char buf[16]; size_t len; int n; - name = RSTRING_PTR(ptr[0]); + name = RSTRING_PTR(RARRAY_AREF(loc, 0)); p = strrchr(name, '/'); /* show only the basename of the path. */ if (p && p[1]) name = p + 1; - n = snprintf(buf, sizeof(buf), "%s:%d", name, NUM2INT(ptr[1])); + n = snprintf(buf, sizeof(buf), "%s:%d", name, NUM2INT(RARRAY_AREF(loc, 1))); rb_gc_force_recycle(loc); /* acts as a GC guard, too */ len = (size_t)n; Index: array.c =================================================================== --- array.c (revision 65437) +++ array.c (revision 65438) @@ -5925,7 +5925,6 @@ static VALUE https://github.com/ruby/ruby/blob/trunk/array.c#L5925 rb_ary_any_p(int argc, VALUE *argv, VALUE ary) { long i, len = RARRAY_LEN(ary); - const VALUE *ptr = RARRAY_CONST_PTR(ary); rb_check_arity(argc, 0, 1); if (!len) return Qfalse; @@ -5938,7 +5937,9 @@ rb_ary_any_p(int argc, VALUE *argv, VALU https://github.com/ruby/ruby/blob/trunk/array.c#L5937 } } else if (!rb_block_given_p()) { - for (i = 0; i < len; ++i) if (RTEST(ptr[i])) return Qtrue; + for (i = 0; i < len; ++i) { + if (RTEST(RARRAY_AREF(ary, i))) return Qtrue; + } } else { for (i = 0; i < RARRAY_LEN(ary); ++i) { Index: thread.c =================================================================== --- thread.c (revision 65437) +++ thread.c (revision 65438) @@ -3091,9 +3091,9 @@ rb_thread_to_s(VALUE thread) https://github.com/ruby/ruby/blob/trunk/thread.c#L3091 if (!target_th->first_func && target_th->first_proc) { VALUE loc = rb_proc_location(target_th->first_proc); if (!NIL_P(loc)) { - const VALUE *ptr = RARRAY_CONST_PTR(loc); - rb_str_catf(str, "@%"PRIsVALUE":%"PRIsVALUE, ptr[0], ptr[1]); - rb_gc_force_recycle(loc); + rb_str_catf(str, "@%"PRIsVALUE":%"PRIsVALUE, + RARRAY_AREF(loc, 0), RARRAY_AREF(loc, 1)); + rb_gc_force_recycle(loc); } } rb_str_catf(str, " %s>", status); Index: gc.c =================================================================== --- gc.c (revision 65437) +++ gc.c (revision 65438) @@ -1955,9 +1955,8 @@ newobj_of(VALUE klass, VALUE flags, VALU https://github.com/ruby/ruby/blob/trunk/gc.c#L1955 #if GC_DEBUG_STRESS_TO_CLASS if (UNLIKELY(stress_to_class)) { long i, cnt = RARRAY_LEN(stress_to_class); - const VALUE *ptr = RARRAY_CONST_PTR(stress_to_class); for (i = 0; i < cnt; ++i) { - if (klass == ptr[i]) rb_memerror(); + if (klass == RARRAY_AREF(stress_to_class, i)) rb_memerror(); } } #endif -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/