@@ -84,7 +84,7 @@ num_to_long(VALUE n)
84
84
}
85
85
86
86
#define AREF (s , idx ) \
87
- ((0 <= idx && idx < RARRAY_LEN(s)) ? RARRAY_PTR(s)[ idx] : Qnil)
87
+ ((0 <= idx && idx < RARRAY_LEN(s)) ? rb_ary_entry(s, idx) : Qnil)
88
88
89
89
/* -----------------------------------------------------------------------
90
90
Parser Stack Interfaces
@@ -98,7 +98,7 @@ get_stack_tail(VALUE stack, long len)
98
98
{
99
99
if (len < 0 ) return Qnil ; /* system error */
100
100
if (len > RARRAY_LEN (stack )) len = RARRAY_LEN (stack );
101
- return rb_ary_new4 ( len , RARRAY_PTR ( stack ) + RARRAY_LEN (stack ) - len );
101
+ return rb_ary_subseq ( stack , RARRAY_LEN (stack ) - len , len );
102
102
}
103
103
104
104
static void
@@ -115,7 +115,7 @@ cut_stack_tail(VALUE stack, long len)
115
115
#define PUSH (s , i ) rb_ary_store(s, RARRAY_LEN(s), i)
116
116
#define POP (s ) rb_ary_pop(s)
117
117
#define LAST_I (s ) \
118
- ((RARRAY_LEN(s) > 0) ? RARRAY_PTR(s)[ RARRAY_LEN(s) - 1] : Qnil)
118
+ ((RARRAY_LEN(s) > 0) ? rb_ary_entry(s, RARRAY_LEN(s) - 1) : Qnil)
119
119
#define GET_TAIL (s , len ) get_stack_tail(s, len)
120
120
#define CUT_TAIL (s , len ) cut_stack_tail(s, len)
121
121
@@ -327,21 +327,21 @@ initialize_params(VALUE vparams, VALUE parser, VALUE arg, VALUE lexer, VALUE lex
327
327
Check_Type (arg , T_ARRAY );
328
328
if (!(13 <= RARRAY_LEN (arg ) && RARRAY_LEN (arg ) <= 14 ))
329
329
rb_raise (RaccBug , "[Racc Bug] wrong arg.size %ld" , RARRAY_LEN (arg ));
330
- v -> action_table = assert_array (RARRAY_PTR (arg )[ 0 ] );
331
- v -> action_check = assert_array (RARRAY_PTR (arg )[ 1 ] );
332
- v -> action_default = assert_array (RARRAY_PTR (arg )[ 2 ] );
333
- v -> action_pointer = assert_array (RARRAY_PTR (arg )[ 3 ] );
334
- v -> goto_table = assert_array (RARRAY_PTR (arg )[ 4 ] );
335
- v -> goto_check = assert_array (RARRAY_PTR (arg )[ 5 ] );
336
- v -> goto_default = assert_array (RARRAY_PTR (arg )[ 6 ] );
337
- v -> goto_pointer = assert_array (RARRAY_PTR (arg )[ 7 ] );
338
- v -> nt_base = assert_integer (RARRAY_PTR (arg )[ 8 ] );
339
- v -> reduce_table = assert_array (RARRAY_PTR (arg )[ 9 ] );
340
- v -> token_table = assert_hash (RARRAY_PTR (arg )[ 10 ] );
341
- v -> shift_n = assert_integer (RARRAY_PTR (arg )[ 11 ] );
342
- v -> reduce_n = assert_integer (RARRAY_PTR (arg )[ 12 ] );
330
+ v -> action_table = assert_array (rb_ary_entry (arg , 0 ) );
331
+ v -> action_check = assert_array (rb_ary_entry (arg , 1 ) );
332
+ v -> action_default = assert_array (rb_ary_entry (arg , 2 ) );
333
+ v -> action_pointer = assert_array (rb_ary_entry (arg , 3 ) );
334
+ v -> goto_table = assert_array (rb_ary_entry (arg , 4 ) );
335
+ v -> goto_check = assert_array (rb_ary_entry (arg , 5 ) );
336
+ v -> goto_default = assert_array (rb_ary_entry (arg , 6 ) );
337
+ v -> goto_pointer = assert_array (rb_ary_entry (arg , 7 ) );
338
+ v -> nt_base = assert_integer (rb_ary_entry (arg , 8 ) );
339
+ v -> reduce_table = assert_array (rb_ary_entry (arg , 9 ) );
340
+ v -> token_table = assert_hash (rb_ary_entry (arg , 10 ) );
341
+ v -> shift_n = assert_integer (rb_ary_entry (arg , 11 ) );
342
+ v -> reduce_n = assert_integer (rb_ary_entry (arg , 12 ) );
343
343
if (RARRAY_LEN (arg ) > 13 ) {
344
- v -> use_result_var = RTEST (RARRAY_PTR (arg )[ 13 ] );
344
+ v -> use_result_var = RTEST (rb_ary_entry (arg , 13 ) );
345
345
}
346
346
else {
347
347
v -> use_result_var = Qtrue ;
@@ -557,7 +557,7 @@ parse_main(struct cparse_params *v, VALUE tok, VALUE val, int resume)
557
557
558
558
accept :
559
559
if (v -> debug ) rb_funcall (v -> parser , id_d_accept , 0 );
560
- v -> retval = RARRAY_PTR (v -> vstack )[ 0 ] ;
560
+ v -> retval = rb_ary_entry (v -> vstack , 0 ) ;
561
561
v -> fin = CP_FIN_ACCEPT ;
562
562
return ;
563
563
@@ -686,9 +686,9 @@ reduce0(VALUE val, VALUE data, VALUE self)
686
686
VALUE goto_state ;
687
687
688
688
Data_Get_Struct (data , struct cparse_params , v );
689
- reduce_len = RARRAY_PTR (v -> reduce_table )[ v -> ruleno ] ;
690
- reduce_to = RARRAY_PTR (v -> reduce_table )[ v -> ruleno + 1 ] ;
691
- method_id = RARRAY_PTR (v -> reduce_table )[ v -> ruleno + 2 ] ;
689
+ reduce_len = rb_ary_entry (v -> reduce_table , v -> ruleno ) ;
690
+ reduce_to = rb_ary_entry (v -> reduce_table , v -> ruleno + 1 ) ;
691
+ method_id = rb_ary_entry (v -> reduce_table , v -> ruleno + 2 ) ;
692
692
len = NUM2LONG (reduce_len );
693
693
mid = value_to_id (method_id );
694
694
@@ -703,10 +703,10 @@ reduce0(VALUE val, VALUE data, VALUE self)
703
703
else {
704
704
if (mid != id_noreduce ) {
705
705
tmp_v = GET_TAIL (v -> vstack , len );
706
- tmp = RARRAY_PTR (tmp_v )[ 0 ] ;
706
+ tmp = rb_ary_entry (tmp_v , 0 ) ;
707
707
}
708
708
else {
709
- tmp = RARRAY_PTR (v -> vstack )[ RARRAY_LEN (v -> vstack ) - len ] ;
709
+ tmp = rb_ary_entry (v -> vstack , RARRAY_LEN (v -> vstack ) - len ) ;
710
710
}
711
711
CUT_TAIL (v -> vstack , len );
712
712
if (v -> debug ) {
0 commit comments