Code: Select all
EnableExplicit
Structure LISTOBJECT
*ListHeader
*CurrentElement
EndStructure
Structure LISTHEADER
*FirstElement
*LastElement
*CurrentElement
*PtrToObject
ListSize.i
ListIndex.i
EndStructure
NewList MyList()
Define *ListObject.LISTOBJECT
Define *ListHeader.LISTHEADER
PushListPosition (MyList())
*ListObject = ResetList (MyList()) - SizeOf (Integer)
*ListHeader = *ListObject\ListHeader
PopListPosition (MyList())
AddElement (MyList())
AddElement (MyList())
Debug ""
Debug *ListHeader\FirstElement
Debug *ListHeader\LastElement
Debug *ListHeader\CurrentElement
Debug *ListHeader\ListSize
AddElement (MyList())
AddElement (MyList())
Debug ""
Debug *ListHeader\FirstElement
Debug *ListHeader\LastElement
Debug *ListHeader\CurrentElement
Debug *ListHeader\ListSize
Unfortunately this trick doesn't work for maps