Hi Kornalius,
Thanks for the garbage collection changes.
I am not sure I understand your comments on "goto".
You say that "goto" can return "true"/"false" as to whetehr it was able to move the pointer. If the index parameter is out of range it will return false and the pointer will not be changed. That makes sense.
In the sample I sent to you I pass the same arguments to both procedures:
goto(MapList$,3) and
mygoto(MapList$,3);
after calling "goto" the pointer refers to the last position in the list (eg the last map loaded [#10] - eg: it has not changed.
after then calling "mygoto" it the pointer has been changed to point to the correct [#4] map. The code in "mygoto" is working correctly!
The pointer is originally at the last item in the list - after the initial load. The list contains 10 elements. When I call "goto" I pass a parameter of "3" (eg looking for the 4th element). Are you saying "goto" will not move backwards in this scenario?