gems

RSTRING(str)->ptr と RSTRING(str)->len の ptr と len が無いんだそうだ 2

ビンゴですた。 s/RSTRING(z->input)->ptr/RSTRING_PTR(z->input)/g とかしてたんだけど、めんどくさくなって、 s/RSTRING(\(.*\))->ptr/RSTRING_PTR(\1)/g s/RSTRING(\(.*\))->len/RSTRING_LEN(\1)/g で、コンパイル通った。 出来上がったのは、zlib.so だ…

RSTRING(str)->ptr と RSTRING(str)->len の ptr と len が無いそうだ。

RSTRING は、 #define RSTRING(obj) (R_CAST(RString)(obj)) のように定義されている。 obj って、VALUE 型だったんだっけ? 多分、R_CAST だし、キャストしてるんだろう。 RString が、Ruby での文字列の実体だったのか〜。 RString 構造体は、こんな風にな…