Page 1 of 1

Get List ObjectPointer

Posted: Sat Dec 14, 2019 9:49 am
by Josh

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
Only testet on Windows
Unfortunately this trick doesn't work for maps :(

Re: Get List ObjectPointer

Posted: Sat Dec 14, 2019 10:02 am
by Kwai chang caine
Works here :shock:
Thanks for sharing 8)

Re: Get List ObjectPointer

Posted: Sat Dec 14, 2019 11:05 am
by davido
@Josh,
Appears to work on my MacBook Pro.

Output:

Code: Select all

4298439048
4298439080
4298439080
2

4298439048
4298439144
4298439144
4


Model Name: MacBook Pro
Model Identifier: MacBookPro12,1
Processor Name: Dual-Core Intel Core i7

System Version: macOS 10.15.2 (19C57)
Kernel Version: Darwin 19.2.0