Mercurial > dwindows
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 *)¶m1]; | 155 #define DW_FUNCTION_ADD_PARAM1(param1) [_args addPointer:(void *)¶m1]; |
157 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)¶m1]; \ | 156 #define DW_FUNCTION_ADD_PARAM2(param1, param2) [_args addPointer:(void *)¶m1]; \ |
158 [_args addPointer:(void *)¶m2]; | 157 [_args addPointer:(void *)¶m2]; |
159 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) [_args addPointer:(void *)¶m1]; \ | 158 #define DW_FUNCTION_ADD_PARAM3(param1, param2, param3) [_args addPointer:(void *)¶m1]; \ |