[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:7083] Meadow がクラッシュします
- X-ml-count: 7084
- Subject: Re: [MD:7083] Meadow がクラッシュします
- From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
- Date: Thu, 08 Dec 2005 13:09:15 +0900 (JST)
- User-agent: Mew version 4.2.54 on Emacs 22.0 / Mule 5.0 (榊) / Meadow-3.00-dev (菊)
ほりぐちです.
> 発生条件などは分かりませんが同じアドレスで 2 回落ちました。
> 以下のコマンド出力からすると expose_window() のどこかで落ちるものと思わ
> れます。描画まわりの修正の影響かもしれません。
>
> $ nm -n Meadow.exe
> (snip)
> 0103b43b T _cancel_mouse_face
> 0103b493 t _expose_area
> 0103b928 t _expose_line
> 0103ba38 t _expose_window
> 0103c02e t _expose_window_tree
> 0103c0b4 T _expose_frame
> 0103c1e0 T _syms_of_xdisp
多分, http://www.meadowy.org/meadow/ticket/253 だと思います. 慣れ
ると10秒ほどで落とせるようになります^^;
これはメインスレッドで tooltip のウィンドウの初期化中に上記のルー
トから投げ込んだ tooltip消去のメッセージが処理されてしまうために
frame のデータが妙な状態になってしまうのが原因です.
対処としては mw32_create_tip_frame で tip_frame を設定していたの
をやめて, x-show-tip の最後にもって行こうと思っています.
場所はもはやよくわからないのですが(他の修正もたまっているので. 分
離しなきゃ)以下のような感じです.
m32fns.c のどこか
=====
- /* Set tip_frame here, so that */
- tip_frame = frame;
call1 (Qface_set_after_frame_default, frame);
=====
tip_timer = call3 (intern ("run-at-time"), timeout, Qnil,
intern ("x-hide-tip"));
+ if (tip_frame != Qnil) /* Is this happen ? */
+ Fdelete_frame (frame, Qnil); /* No room to exist */
+ else
+ tip_frame = frame;
+
UNGCPRO;
return unbind_to (count, Qnil);
}
====
--
ほりぐちきょうたろう