[#39106] What processor do you run ruby on? — "K.Sasada" <ko1@...>

 ささだです。

13 messages 2004/02/09
[#39200] Re: What processor do you run ruby on? — "K.Sasada" <ko1@...> 2004/02/17

"K.Sasada" <ko1@namikilab.tuat.ac.jp> wrote :

[#39207] Re: What processor do you run ruby on? — Isamu KOZUKA <kozuka@...> 2004/02/17

小塚@しなきゃならないテストがいっぱいだ〜....です。

[#39129] InternetExplorer ってインターフェースとして使える? — Shin-ichiro HARA <sinara@...>

原です。

34 messages 2004/02/10
[#39130] Re: InternetExplorer ってインターフェースとして使える? — Yac <yac@...> 2004/02/10

岡です。

[#39136] Re: InternetExplorer ってインターフェースとして使える? — Yac <yac@...> 2004/02/10

岡です。

[#39140] Re: InternetExplorer ってインターフェースとして使える? — arton <artonx@...> 2004/02/11

artonです。別件。

[#39144] Re: InternetExplorer ってインターフェースとして使える? — Shin-ichiro HARA <sinara@...> 2004/02/12

原です。

[#39145] Re: InternetExplorer ってインターフェースとして使える? — arton <artonx@...> 2004/02/12

artonです。

[#39146] Re: InternetExplorer ってインターフェースとして使える? — nobu.nakada@... 2004/02/12

なかだです。

[#39147] Re: InternetExplorer ってインターフェースとして使える? — arton <artonx@...> 2004/02/12

artonです。

[#39150] Re: InternetExplorer ってインターフェースとして使える? — nobu.nakada@... 2004/02/12

なかだです。

[#39151] Re: InternetExplorer ってインターフェースとして使える? — arton <artonx@...> 2004/02/12

artonです。

[#39275] DnD on win32 — Shinichiro HIDA <shinichiro@...>

飛田と申します。

21 messages 2004/02/26
[#39276] Re: DnD on win32 — たむらけんいち <sgs02516@...> 2004/02/26

たむらです。

[#39277] Re: DnD on win32 — Shinichiro HIDA <shinichiro@...> 2004/02/27

飛田です。

[#39278] Re: DnD on win32 — Itou-T15@... 2004/02/27

[#39288] 固有値、固有ベクトルの計算 — Masahiro Sato <msato@...>

19 messages 2004/02/27

[ruby-list:39151] Re: InternetExplorer ってインターフェースとして使える?

From: arton <artonx@...>
Date: 2004-02-12 12:12:33 UTC
List: ruby-list #39151
artonです。

> このpdispが他にはまったくrubyから参照されることがないなら、それ
> しかないかも知れませんね。あとは、valのfinalizerで解放するとか。
> そういえば、同じオブジェクトに対していくつ作ってもとくに問題は
> ない?
COM側では問題ないですが、気にしているのは、
recv = Recver.new()
doc.attachEvent('onclick', recv)
doc.attachEvent('onmouseover', recv)
doc.attachEvent('onmousedown', recv)
とした場合、Win32OLEでは都合3回、Dispatchラッパを作るわけで、その過程で
> > +     pdisp->refcount = 1;
>         rb_gc_register_address(val);
> > +     pdisp->obj = val;
が3回同一valに対して行われる(これはおそらく問題ないと思いますが)
のに対して、IEのページ推移などで与えたDispatchが廃棄されると都合3回
> +     if (u == 0) {
> + 	free(p->dispatch.lpVtbl);
>         rb_gc_unregister_address(p->obj); // ruby-list:39147を修正
> + 	free(p);
> +     }
を呼び出すことになるのが、OKかどうか。
もっともgc.cを読む限りでは異なるglobal_Listのエントリーになるから大丈夫
だと思うんですが(unregisterでは最初に見つかったエントリーを削除)。
逆にrb_gc_register_addressが既存エントリーをチェックして重複検出するとま
ずいことになりそうですね。

-- 
arton <artonx@yahoo.co.jp>

__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/


In This Thread