[スレッド全体]

2009/8/6 (木) 22:37:30 Hidetaka Sakai  
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.1) Gecko/20090716 Ubuntu/9.04 (jaunty) Shiretoko/3.5.1
[5600] Re4:Wineでの動作について(修正)
▼ なすこじさん
> 確認しました。
> User Objectsの項でしたね。ありがとうございます。
>
> 2chから遡ってBug 19368にたどり着きました。

すみません。リンク貼っとけばよかったですね。
今更だけど。。。
http://bugs.winehq.org/show_bug.cgi?id=19368

> 共有メモリにあるのはAcceletor Tableのハンドルだけです。実体はデスクトップヒープに作られると思います
> なので、他のプロセスからも参照できるが、Destroyを忘れるとアプリを終了してもメモリに残る……と思う。

そのようですね。
Dmitry Timoshkov 氏の解答によるとによると、
Acceletor Tableは、user32 kernel objectとして
作成されるから、複数プロセスからも参照できる。
だそうです。(解釈あってるか不安ですが。。。)

# In Windows an accelerator is a user32 kernel object,
# like windows and menus, and an accelerator created
# in one process is visible to anotherone.


> 一方Wineではプロセスヒープに作られてしまい
> 他のプロセスから見れなくなっているのでは?
> というのが私の推測です。
> 怪しいですが (^^;

これはYesでしょうね。
なすこじさんがが教えてくださったAlloc16は
最終的にヒープを取得しているようです。

Dmitry Timoshkov 氏の解答によると、
Wineは、window handleしか、
user32 kernel object実装していない
とのこと。(和訳あってるかしら・・・)

# Wine implements this only for window handles.


> > 生成は、起動時に1回しか呼び出されていないようです。
>
> ご、ごめんなさい m(_ _)m
> 再作成のために毎回やっていると思い込んでいました。確かにループの外にありますね。


ryoji さんが報告してくださった箇所でも
Acceletor Tableは生成されているようですが、
文章を書くのに支障はでないのではとおもいます。
(ryojiさんありがとうございます。)


> > Wine側には、調査後報告するようにします。
> > (ちょっと時間が開くかもしれませんが、
> >  またこのBBSに報告します。)

>
> お手数をお掛けしますが宜しくお願いします。


報告しちゃいました。。。。

今度は、Wine側ソースを追っかけしてみます、

ではでは。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.010][st:0.000]