ミ,,゚Д゚彡DelフサギコのフサフサDelphi談話室
■ このスレッドは過去ログ倉庫に格納されています
0286Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< ゼンゼンんしらにゃー。
ミつ つ \>>285さん、ありがとう。
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪
> インターフェースの中身はメソッドテーブルって事は知っているよね?
知りませんです。
なんとなく、そんな気はしますが。
> そのメソッドテーブルはオブジェクトのインスタンス毎に生成されています。
> インスタンスを廃棄した場合、メソッドテーブルも同時に廃棄されます。
なるほどなるほど。
つまり、インターフェース変数にはメソッドテーブルが入るという事ですね。
> インターフェースの参照を解放する前にインスタンスを廃棄してしまった場合、
> _Releaseメソッドなどを呼びだそうとすると既に存在していない
> メソッドテーブルを参照しようとしてメモリアクセス違反が起きます。
えーーーー!!!
nilが入っていないとメソッドテーブルの実体はなくなっているのに
インターフェース変数の参照が消える時にメソッドテーブルにアクセスしようとするわけですね。
> これは回避不可能なので、あらかじめ nil を代入しておき _Release メソッドの
> 自動呼び出しを抑制するほかありません。
にゃんじゃって〜〜〜!
こんな実装した奴どこの誰ジャー−−
∩,,,,,,,,,,,∩ ,,,_
〜⊂`'''''''''ミ。Д。ミ⊃ ギャフーン
`'''''''''''∨ ∨
■ このスレッドは過去ログ倉庫に格納されています