Opened 13 years ago

Last modified 13 years ago

#156 new タスク

Deleteを明示的に行うとデストラクタが2回呼ばれてしまう

Reported by: イグトランス (egtra) Owned by: イグトランス (egtra)
Priority: 低-minor Milestone: ablib_α1
Component: ablib Version:
Keywords: Cc:

Description

次のコードで、~Hoge()が2回呼ばれることから明らか。コメントアウトしたポインタ構文では1回しか呼ばれない模様。

#console

Class Hoge
	Sub ~Hoge()
		Print "~Hoge()"
	End Sub
End Class

Dim h = New Hoge
Delete ObjPtr(h)
h = Nothing
/*
Dim h As *Hoge
h = New Hoge
Delete h
*/
Dim i As Long
For i = 0 To 10
	GC_malloc(4 * 1024 * 1024)
Next

Sleep(5000)

Change History (1)

comment:1 Changed 13 years ago by イグトランス (egtra)

上のポインタのコードで、参照を消していなかった。念のため、参照を消してみたが、やはり1回しか呼ばれなかった。

Dim h As *Hoge
h = New Hoge
Delete h
h = 0
Note: See TracTickets for help on using tickets.