[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]