[Ruby] Win32OLE のメモリーリーク
ruby-talk:355014 の話。
これから、ちょっと調べてみようと思うのだが、厄介なのが、完全に同じ現象を再現できる
スクリプトを提供してもらえないということ。
Unfortunately this application is not available to the general public so I
can't provide a script for someone to independently verify this. :(
とのことなので、こちらでメモリーリークが発生するスクリプトを作り出さないといけない。
特定しづらいのだが、考えられるのは、
- on_event でメモリーリーク
- on_event のブロック引数が WIN32OLE オブジェクトである場合にメモリーリーク
- on_event のブロック引数が WIN32OLE オブジェクトでかつVT_ARRAYである場合にメモリーリーク
- 単純に VT_ARRAY を扱うときのメモリーリーク
- 参照カウンタのデクリメント忘れ(IDispatch::Release の呼び忘れ)
- それ以外のWin32OLE側のどこかでメモリーリーク
あたりかな。
再現するスクリプトが簡単にできるといいんだけどな。
| 固定リンク
この記事へのコメントは終了しました。
コメント