diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | include/ruby/ruby.h | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Tue Dec 24 12:11:43 2013 Koichi Sasada <ko1@atdot.net> + + * include/ruby/ruby.h (RARRAY_ASET): try to avoid compiler warning. + [Bug #9287] + Tue Dec 24 05:04:56 2013 NAKAMURA Usaku <usa@ruby-lang.org> * test/fileutils/test_fileutils.rb (setup): should not call diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h index cad402a201..6c6cee25c1 100644 --- a/include/ruby/ruby.h +++ b/include/ruby/ruby.h @@ -900,8 +900,10 @@ struct RArray { #define RARRAY_AREF(a, i) (RARRAY_CONST_PTR(a)[i]) #define RARRAY_ASET(a, i, v) do { \ - const VALUE _ary_ = (a); \ - RB_OBJ_WRITE(_ary_, &RARRAY_CONST_PTR(_ary_)[i], (v)); \ + const VALUE _ary = (a); \ + VALUE *ptr = (VALUE *)RARRAY_PTR_USE_START(_ary); \ + RB_OBJ_WRITE(_ary, &ptr[i], (v)); \ + RARRAY_PTR_USE_END(_ary); \ } while (0) #define RARRAY_PTR(a) ((VALUE *)RARRAY_CONST_PTR(RGENGC_WB_PROTECTED_ARRAY ? OBJ_WB_UNPROTECT((VALUE)a) : ((VALUE)a))) |