Is this a bug?
BlitzMax Forums/BlitzMax Beginners Area/Is this a bug?
| ||
| It seems these types should be deleted at flushmem, but theyre not. What am I missing here?
Type BaseObject
Global list:TList
Global IDCount
Field ID
Function Get_Object:BaseObject(_ID)
Local o:baseobject
For o = EachIn List
If o.ID = _ID Then
Return o
End If
Next
Return Null
End Function
Method New()
If List = Null Then List = CreateList()
list.Addlast(Self)
IDCount :+ 1
ID = IDcount
Print("BaseObj::New()")
End Method
Method Get_ID:Int()
Return ID
End Method
Method Delete()
List.Remove(Self)
If CountList(List) = 0 Then list = Null
End Method
End Type
Type Testtype Extends BaseObject
Field A
Field B
Method New()
Print("Testype::New()")
End Method
Method Delete()
Print("Testype::Delete()")
End Method
'-----------------------
Function Create_Test()
Local Test:Testtype
test = New testtype
Return test.ID
End Function
End Type
Local A:testtype = New testtype
Notify a.Get_ID()
Local B:testtype = New testtype
Notify B.Get_ID()
B = Null
A = Null
FlushMem
FlushMem
Print CountList(A.list)
End
|
| ||
Test this one:
Type BaseObject
Global list:TList
Global IDCount
Field ID
Field Link:TLink
Function Get_Object:BaseObject(_ID)
Local o:baseobject
For o = EachIn List
If o.ID = _ID Then
Return o
End If
Next
Return Null
End Function
Method New()
If List = Null Then List = CreateList()
Link=list.Addlast(Self)
IDCount :+ 1
ID = IDcount
Print("BaseObj::New()")
End Method
Method Get_ID:Int()
Return ID
End Method
Method Remove()
Link.Remove()
If CountList(List) = 0 Then List=Null;Print "List is Emty!"
Flushmem()
End Method
End Type
Type Testtype Extends BaseObject
Field A
Field B
Method New()
Print("Testype::New()")
End Method
Method Delete()
Print("Testype::Delete()")
End Method
'--------e---------------
Function Create_Test()
Local Test:Testtype
test = New testtype
Return test.ID
End Function
End Type
Local A:testtype = New testtype
Notify A.Get_ID()
Local B:testtype = New testtype
Notify B.Get_ID()
A.Remove()
B.Remove()
B = Null
A = Null
FlushMem
FlushMem
End
|
| ||
| Thanks Tiger, But why is the code I posted above not working propery? It seems it should. is it a bug? |EDIT| Oh.. Nevermind. heheh. I understand now.. duh :) |