comparison mac/dw.m @ 1974:a806773066f6

Mac: Removed an unnecessary retain in the macros that was causing a NSPointerArray to leak on any multithread wrapped functions.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 06 Aug 2019 22:52:23 +0000
parents 22c96cd42eb8
children 59146d14e21e
comparison
equal deleted inserted replaced
1973:69d0b37082d0 1974:a806773066f6
149 #define DW_FUNCTION_INIT 149 #define DW_FUNCTION_INIT
150 #define DW_FUNCTION_DEFINITION(func, rettype, ...) void _##func(NSPointerArray *_args); \ 150 #define DW_FUNCTION_DEFINITION(func, rettype, ...) void _##func(NSPointerArray *_args); \
151 rettype API func(__VA_ARGS__) { \ 151 rettype API func(__VA_ARGS__) { \
152 DW_LOCAL_POOL_IN; \ 152 DW_LOCAL_POOL_IN; \
153 NSPointerArray *_args = [[NSPointerArray alloc] initWithOptions:NSPointerFunctionsOpaqueMemory]; \ 153 NSPointerArray *_args = [[NSPointerArray alloc] initWithOptions:NSPointerFunctionsOpaqueMemory]; \
154 [_args retain]; \
155 [_args addPointer:(void *)_##func]; 154 [_args addPointer:(void *)_##func];
156 #define DW_FUNCTION_ADD_PARAM1(param1) [_args addPointer:(void *)&param1]; 155 #define DW_FUNCTION_ADD_PARAM1(param1) [_args addPointer:(void *)&param1];
157 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)&param1]; \ 156 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)&param1]; \
158 [_args addPointer:(void *)&param2]; 157 [_args addPointer:(void *)&param2];
159 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) [_args addPointer:(void *)&param1]; \ 158 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) [_args addPointer:(void *)&param1]; \