TList Local scope
BlitzMax Forums/BlitzMax Programming/TList Local scope
| ||
ok, here my question, Missile is created in FireMissile method in SpaceShip TYPE (Local Missile:). after that method FireMissile is finished, isn't that Missile object is deleted? because it's declare Local? and why it's left in GameObjectList:Tlist in global? Global GameObjectList:TList Type TMissile Extends TGameObject Function Create:TMissile() Local Ship::TMissile=New :TMissile ListAddLast GameObjectList, Ship Return Ship End Function End Type Type SpaceShip Method FireMissile() If MissileDelay<0 ----->>>>> Local Missile:TMissile=TMissile.Create() MissileDelay=10 End If End Method End Type |
| ||
no it will never be destroyed. Its put into the list, so unless you remove it from the list again it will not die. |
| ||
and why it's left in GameObjectList:Tlist in global Because you now have a reference to the Object in the TList. As long as there's a reference to it, it will never be Garbage Collected. Like what Dream said as I was typing this... :-p |
| ||
Because you put it in the linked list. Until you remove it from the linked list, it will never be freed. I just wanted to be cool. |
| ||
thanks. got it. |
| ||
to be a bit more explanatory, your only ever dealing with references to objects. so long as there is a reference, the object will still exist. you cannot destroy anything without destroying its references. Its actually quite useful that way. |