From 9215982a1f254b01e4e75ee49a86db8bbeab026b Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 25 Sep 2013 08:44:09 +0000 Subject: * README.EXT, README.EXT.ja: remove description of RARRAY_PTR() and add a caution of accessing internal data structure directly. Also add a description of rb_ary_store(). [Bug #8399] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- README.EXT.ja | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'README.EXT.ja') diff --git a/README.EXT.ja b/README.EXT.ja index d4d1e61980..2e4ac3c895 100644 --- a/README.EXT.ja +++ b/README.EXT.ja @@ -140,13 +140,15 @@ var は lvalue である必要があります. あるのは文字列と配列くらいだと思います. ruby.hでは構造体へキャストするマクロも「RXXXXX()」(全部大文 -字にしたもの)という名前で提供されています(例: RSTRING()). +字にしたもの)という名前で提供されています(例: RSTRING()).た +だし、構造体への直接のアクセスはできるだけ避け,対応する +rb_xxxx() といった関数を使うようにして下さい.例えば,配列の +要素へアクセスする場合は,rb_ary_entry(ary, offset), +rb_ary_store(ary, offset, obj) を利用するようにして下さい. 構造体からデータを取り出すマクロが提供されています.文字列 strの長さを得るためには「RSTRING_LEN(str)」とし,文字列strを -char*として得るためには「RSTRING_PTR(str)」とします.配列の -場合には,それぞれ「RARRAY_LEN(ary)」,「RARRAY_PTR(ary)」と -なります. +char*として得るためには「RSTRING_PTR(str)」とします. Rubyの構造体を直接アクセスする時に気をつけなければならないこ とは,配列や文字列の構造体の中身は参照するだけで,直接変更し @@ -310,6 +312,10 @@ rb_ary_entry(VALUE ary, long offset) ary[offset] +rb_ary_store(VALUE ary, long offset, VALUE obj) :: + + ary[offset] = obj + rb_ary_subseq(VALUE ary, long beg, long len) ary[beg, len] -- cgit v1.2.3