ようやっと,虫さんがいなくなったようです.
おっしゃぁー!
(テニスの時に私がよく言ってる掛け声ですね..
どうして,プロの人は,Come On! っていうのかな?
日本人なのに..)
さて,問題は何だったか..
やっぱり,メモリ関連でした.
Palmで挙動に一貫性のない実行時fatal errorが出たら,
疑うべきは,dyanamic heapを壊してないか,
ですね.
Palm OS Programmer's Companion, Volume I
にもこう書いてあります.
Avoid placing large amounts of data on the stack.
(ごめんなさい..)
Heap corruption is hard to debug.
(そうですね..)
Global variables are preferable to local variables;
(そうなんですよ.)
however, chunks are preferable to global variables.
(そんなん,ちゃんと言ってくれな,わかりません)
Your application has a limited amount of stack space
depending on the system software version.
(わかってるようで,わかってなかったわ..)
っちゅーことで,
大きめのテキストとかは,このchunkを使う方針にしましょう.
MemHandle dat_hdl;
dat_hdl = MemHandleNew(fileSize+1); // 確保
dat = MemHandleLock(dat_hdl); // 動かないようロック
StrCopy(dat, "mojiretsu");
StrCat(dat, tekigi);
MemHandleFree(dat_hdl); // 使わなくなったら,開放
こんな感じですね.
ふひゅー.