// 17 august 2015
#import "uipriv_darwin.h"

// unfortunately NSMutableDictionary copies its keys, meaning we can't use it for pointers
// hence, this file

NSMapTable *newMap(void)
{
	return [NSMapTable mapTableWithKeyOptions:(NSPointerFunctionsOpaqueMemory | NSPointerFunctionsOpaquePersonality)
		valueOptions:NSPointerFunctionsOpaqueMemory];
}

void *mapGet(NSMapTable *map, id key)
{
	NSValue *v;

	v = (NSValue *) [map objectForKey:key];
	return [v pointerValue];
}

void mapSet(NSMapTable *map, id key, void *value)
{
	NSValue *v;

	v = [NSValue valueWithPointer:value];
	[map setObject:v forKey:key];
}