Have a look at this pseudocode:
void* magicpointer = malloc(OVER_NINE_THOUSAND);
NSValue* v = [NSValue valueWithPointer:magicpointer];
[v release];
When v is released, does magicpointer get freed as well, or do I have to do that manually? I am using manual reference counting.