From: nobu.nakada@... Date: 2002-01-28T22:22:33+09:00 Subject: [ruby-dev:15789] Re: definition of StringValue なかだです。 At Mon, 28 Jan 2002 21:42:26 +0900, UENO Katsuhiro wrote: > ところで、今 Ruby/zlib を 1.7 に対応させてて思ったのですが、 > StringValue ってなぜ書き換え型(?) なんでしょうか。 > > #define StringValue(v) ((TYPE(v) == T_STRING ? (v) : rb_str_to_str(v)) > > として、 > > str = StringValue(str); > > と書いたほうが自然に見えて、かつ応用も効きませんか? そうすると、strが最適化で消されたときにGCに引っかからなくなるか らです。[ruby-dev:13116]からのスレッドを見てください。 > # ついでに Data_Get_Struct も > # #define Data_Get_Struct(o,t) \ > # ((void)Check_Type(obj, T_DATA), (type*)DATA_PTR(obj)) > # のほうが > # struct zstream *z = Data_Get_Struct(obj, struct zstream); > # と書けて嬉しいかも。 そうですねぇ。でも互換性がないので入るとしても別の名前でしょう ね。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦