changeset 2813:9c9b680f7772

Mac/iOS: Fix a memory leak when calling API functions that return. This affects iOS and newer versions of MacOS that require main thread.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 28 Jul 2022 09:54:23 +0000
parents 723b79981427
children 1b33d03568c4
files ios/dw.m mac/dw.m
diffstat 2 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ios/dw.m	Wed Jul 27 09:56:26 2022 +0000
+++ b/ios/dw.m	Thu Jul 28 09:54:23 2022 +0000
@@ -188,9 +188,9 @@
         void *tmp = [_args pointerAtIndex:[_args count]-1]; \
         rettype myreturn = *((rettype *)tmp); \
         free(tmp); \
-        return myreturn; } \
-    [_args release]; \
-    DW_LOCAL_POOL_OUT; } \
+        [_args release]; \
+        DW_LOCAL_POOL_OUT; \
+        return myreturn; }} \
 void _##func(NSPointerArray *_args) {
 #define DW_FUNCTION_RETURN_THIS(_retvar) { void *_myreturn = malloc(sizeof(_retvar)); \
     memcpy(_myreturn, (void *)&_retvar, sizeof(_retvar)); \
--- a/mac/dw.m	Wed Jul 27 09:56:26 2022 +0000
+++ b/mac/dw.m	Thu Jul 28 09:54:23 2022 +0000
@@ -335,9 +335,9 @@
         void *tmp = [_args pointerAtIndex:[_args count]-1]; \
         rettype myreturn = *((rettype *)tmp); \
         free(tmp); \
-        return myreturn; } \
-    [_args release]; \
-    DW_LOCAL_POOL_OUT; } \
+        [_args release]; \
+        DW_LOCAL_POOL_OUT; \
+        return myreturn; }} \
 void _##func(NSPointerArray *_args) {
 #define DW_FUNCTION_RETURN_THIS(_retvar) { void *_myreturn = malloc(sizeof(_retvar)); \
     memcpy(_myreturn, (void *)&_retvar, sizeof(_retvar)); \