Susie 同梱 Plug-IN のバグ報告 (すすむ) 1999/04/14 04:47
現在自作のソフトでSusie Plug-in を使用したソフトを作成しているものですが、その中で、Susieに同梱されているPlug-inに(実際にはそれほど重大ではないのですが)バグが確認できましたので、ご報告します。(非常に専門的になりますが、ご容赦を)

ほとんどのPlug-inで、::LocalAlloc で確保されていないにも関わらず、::LocalFree で解放しようとしているメモリブロックがあります。詳細な検討の結果、これは恐らく、mallocやnewなどを使って確保したメモリを、誤って解放しようとしているものと思われます。このとき解放しようとして::LocalFree に渡されるアドレスは、実際には ::HeapAlloc を使用して確保されたheap領域の中のアドレスを指しています。またこのときのheapブロックは、そのDLLのINSTANCEではなく、新規に作成されている物のようです。よって、ライブラリのメモリー獲得ルーチンが内部的に作成したものとわたしは考えています。

なお、::LocalLock ::LocalUnlock のロック回数に矛盾はありませんでした。
また、::LocalAlloc されたメモリの ::LocalFree し忘れもないようです。(少なくともAPI呼び出しの前後では)。よって、実際にはそれほど致命的ではないとは思います。
これらは、lhasad.spi 96/6/19 22:55:36 でおもに解析しています。

更に詳細な報告もできますので、もしお望みでしたらその旨メール下さい。

あと、この件とは関係ないのですが、lhasad.spi で GetArchiveInfo を disk から memory に読むとき、戻り値が 2 になってしまいます。しかし、HLOCAL 自体は正しく作成されています。調査の結果、直前で _lread の戻り値が 0 で(多分ファイルの終端)、内部コード(this+0x10?)が 0x0a に設定され、それを見て戻り値が 2 に設定されているようです。(ご参考までに)
それとも、わたしの呼び方の何かがいけないのでしょうか。
また、エラーコードを返しているのに、HLOCALを返すのはやや問題ではないでしょうか。
(このおかげで、エラーコードの2を無視して処理を続行できるので、この問題を回避できてますが、厳密にはこういう実装はマズイのではないでしょうか。)






--「Susie 同梱 Plug-IN のバグ報告」に対するコメント--
タイトル(Subject):
お名前(Your name):
Mail address:
Password: :入力しておくとあとで削除できます
Your message:




7thBridge P ver0.26 (c)Takechin