Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Tidies up after map enumeration... effectively destroys the enumerator.
Returns the bucket from which the next node in the enumeration will come. Once the next node has been enumerated, you can use the bucket and node to remove the node from the map using the GSIMapRemoveNodeFromMap() function.
Enumerating
Create an return an enumerator
for the specified map.
You must call
GSIMapEndEnumerator()
when you have finished with the enumerator.
WARNING You should not alter a
map while an enumeration is in progress. The
results of doing so are reasonably unpredictable.
Remember, DON'T MESS WITH A MAP WHILE YOU'RE
ENUMERATING IT.
Returns the next node in the map, or a nul pointer if at the end.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Description forthcoming.
Add the method list to the class as the first list to be searched during method invocation for the given class. Depending on toInstanceMethods, this list will be added as an instance or a class method list. If the list is in use by another class , behavior is undefined. Create a new list with GSAllocMethodList() or use GSRemoveMethodList() to remove a list before inserting it in a class.
After method list manipulation you should call GSFlushMethodCacheForClass() for the changes to take effect.
This function should currently (June 2004) be considered WIP. Please follow potential changes (Name, parameters,...) closely until it stabilizes.
Returns a pointer to objc_malloc'ed memory large enough to hold a struct objc_method_list with 'count' number of struct objc_method entries. The memory returned is initialized with 0, including the method count and next method list fields.
This function is intended for use in conjunction with GSAppendMethodToList() to fill the memory and GSAddMethodList() to activate the method list.
After method list manipulation you should call GSFlushMethodCacheForClass() for the changes to take effect.
WARNING: Manipulating the runtime structures can be hazardous!
This function should currently (June 2004) be considered WIP. Please follow potential changes (Name, parameters,...) closely until it stabilizes.
Allocate a new objc_mutex_t and store it in the location pointed to by request. A mutex is only created if the value pointed to by request is NULL. This function is thread safe in the sense that multiple threads my call this function with the same value of request and only one will actually set the mutex. It is the users responsibility that no one else attempts to set the mutex pointed to. This function should be used with objc_mutex_t variables which were statically initialized to NULL like:
void function (void) { static objc_mutex_t my_lock = NULL; if (my_lock == NULL) GSAllocateMutexAt(