先日のEmacsのWindowsバイナリの件,いろいろ画像系のライブラリが有効になってなかったのと, 一部のDLLを読み込だ場合に終了時にエラーが発生するのを修正しました.
—
先日のバイナリだと一部の画像系のDLLをロードした状態で,Emacsを終了させるとクリーンアップコードの
途中でabortが呼ばれて異常終了するという問題がありました.
(少し前ですがEmacs開発MLにも似たような現象が報告されていました).
Emacsのソースを調べてみたのですが,DLLをLoadLibraryしてFreeLibraryをしていないようなので, クリーンアップコードが呼ばれる前にFreeLibraryするように改変してみました(いまのところlibpngとlibtiffのみ).
たぶんDLLをロードするような処理全般で似たようなことが起こりうるのではないかと思うのですが, とりあえずこれで様子を見てみます.
NTEmacsが、よく落ちるので追いかけていたところ、このブログをみつけました。 パッチのリンクがgnupackのIME対応オリジナルなパッチを指してしまっているようです。image.c の x_clear_image() あたりで処理されているのでしょうか? 試してみたいと思っています。
ご指摘ありがとう御座います.パッチのリンクは修正いたしました.うっかりしてました(汗
きっちり見ていないのですが,これは個々の画像ファイルをアンロードするための関数のように見えます.image.cのinit_png_functions()という関数にはlibpngのDLLをロードしている部分があるのですが,上記パッチではこの直後でDLLをFreeLibraryする関数をatexitで登録しています.libtiffも同様です.