最近の Mozilla 用 Shockwave Flash player と ATOK X の組み合わせで腐る問題なんだけど、少しづつだがわかってきた。 原因としては、FlashPlayer が一つの Display オブジェクトに対し XOpenIM を2回実行していることだった。 iiimf の htt_xbe を XIM Server としている場合、 2回目の実行時に XOpenIM から呼び出される _XDynamicOpenIM が null pointer を返して、そのあとにグッサリいっているみたいだ。 ちなみに kinput2 を XIM Server としている場合は、2回目の _XDynamicOpenIM でも null でない普通な Object pointer を返しているために問題が発生していない。 この XOpenIM が実行されていることについては、Mozilla の run-mozilla.sh に option "-g" を追加して gdb を使った debug mode で実行して、 mozilla がある程度起動したところで stop して、_XDynamicOpenIM() に break point を設定すると、libflashplayer.so が XOpenIM を2回実行していることがわかると思う。
んで、XOpenIM を複数回実行することが許されているのかどうかということが、僕自身では判断できない。 どうしたらいいんだ?