[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [bep]Linuxスピーチサーバ(Re: [bep] [FAQ]coreを作らないには?)
- To: bep@argv.org
- Subject: Re: [bep]Linuxスピーチサーバ(Re: [bep] [FAQ]coreを作らないには?)
- From: Noritsugu Nakamura <nnakamur@mel.cl.nec.co.jp>
- Date: Tue, 22 May 2001 09:08:41 +0900 (JST)
- Delivered-To: mailing list bep@argv.org
- Mailing-List: contact bep-help@argv.org; run by ezmlm
中村 です。
In article <86ae46o5s3.fsf@windy.src.argv.org>
Koichi INOUE <inoue@...> wrote:
> > 落ちる原因とは全く関係ないですが、ss_read_input() 内で
> > static char *buf に確保されたメモリってどこで free
> > しているのでしょうか?OS まかせ?
>
> そうです。
> このバッファは実は必要だったらどんどん大きくなるので、ときどきは掃除をし
> ないといけないのでしょうね。
> 終了時はOSが勝手にfree()してくれることを期待している作りになっています。
なるほど。やっぱりそうだったのですね。
ですが、ssfunc.cpp の char *ss_read_input() はちょっと良く分かりません。
if (pos == SS_INPUT_BLK_SIZE) {
buf = (char *)realloc(buf,
SS_INPUT_BLK_SIZE * (++buf_blocks));
}
は pos を SS_INPUT_BLK_SIZE と比較していて、
static char 宣言された buf_blocks がプラプラされています。
SS_INPUT_BLK_SIZE が 512 で buf_blocks が char だから
循環してうまくいくのでしょうか???