Jun Inoue
jun.l****@gmail*****
2005年 8月 25日 (木) 07:10:00 JST
On Wed, 24 Aug 2005 22:20:19 +0900 Kazuki Ohta <mover****@hct*****> wrote: > > そう、それともう一つ訊きたいことが(どっかで既に訊いたような気も)。Copy- > > on-write な string オブジェクトは実装する予定はあるんでしょうか (i.e. > > string のデータは \0-terminated と仮定していいかどうか) > COWにする事で\0-terminatedが保証されるかに影響するのでしょうか? > COWは同じ文字列を使いまわすだけで、終端文字等はかかわって来ないと > 認識しているのですが。不勉強だったらごめんなさい。 あ、COW というよりむしろ部分文字列ですね。すいません。 例えば (define complaint "蚊ゆいうざい") (define cause (substring complaint 0 1)) としたとき、string データが全て \0-terminated だと cause の値を作るとき に complaint の一文字目をどこかにコピーして後ろに \0 を付け足す必要があ ります。文字列長を int で管理して COW にすると、string-set! が無い限り最 初の文字列を切り取り次第に使いまわせます。 -- Jun Inoue jun.l****@gmail*****