GPC and Mac implicit pointer objects
Peter N Lewis
peter at stairways.com.au
Sat Jul 2 05:06:38 CEST 2005
At 12:36 +0200 1/7/05, Frank Heckenbach wrote:
> > Lack of univ parameter support (I see Sun Workshop Compiler docs
>So what do you really need?
Every use of univ in the Apple Universal Interfaces is a pointer
(they are all just Ptr, but that is unsurprising since they don't
specify the implementation anyway, and they are probably defined as
void * in the C interfaces).
In my own code, I have roughly 500 odd uses, including:
Ptr
PtrPtr
MyListHeadPtr
MyListItemPtr
DCtlArrayPtr
FSXParamBlockRecPtr
BookmarksBarItemPtr
MovableModalStatePtr
MyQElemPtr
ParmBlkPtr
QElemPtr
CFPropertyListRef
CFTypeRef
UInt32
SInt32
SInt16
UInt16
SInt64
UInt64
The use breaks down as:
* General arbitrary memory pointer (eg for BlockMove, FileWriteData, etc)
* Pointers to polymorphic type (eg CFPropertyListRef is a "subclass"
of CFTypeRef, and shares functions like Destroy, Show, etc).
* Pointers to extendable types (eg MyQElemPtr points to a record that
must start with a QElemRecord, but then continues with user data).
* Storage/Retrieval of user data (eg, user data is 32 bits, and can
store an arbitrary user data like a reference number or pointer).
* Low level data manipulation (like read/write 16/32/64 bit
quantities from a file).
So basically Pointer and sized integer are the uses I have, and the
sized integer that matches the size of pointer needs to be
compatible. Also, ideally, it would be compatible with function
pointer as well, since that would be one thing that might want to be
stored in a userdata field.
Thanks,
Peter.
--
<http://www.stairways.com/> <http://download.stairways.com/>
More information about the Gpc
mailing list