summaryrefslogtreecommitdiff
path: root/Source/WTF/wtf/spi/darwin/XPCSPI.h
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-10 13:08:05 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-09-11 09:25:42 +0200
commit5909e6d0d10de3e1370b3ea0bc596f580101e3b4 (patch)
tree6acc39b8ea0165562d480f1c54608c6c4ae9f865 /Source/WTF/wtf/spi/darwin/XPCSPI.h
parentbeaeeb99881184fd368c121fcbb1a31c78b794a3 (diff)
parent81cbb264cb9446c4408124d50aeff50164ad0ab4 (diff)
downloadqtwebkit-5909e6d0d10de3e1370b3ea0bc596f580101e3b4.tar.gz
Merge "Merge remote-tracking branch 'origin/5.212' into dev"
Diffstat (limited to 'Source/WTF/wtf/spi/darwin/XPCSPI.h')
-rw-r--r--Source/WTF/wtf/spi/darwin/XPCSPI.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/Source/WTF/wtf/spi/darwin/XPCSPI.h b/Source/WTF/wtf/spi/darwin/XPCSPI.h
index e30315ab5..2820b9d04 100644
--- a/Source/WTF/wtf/spi/darwin/XPCSPI.h
+++ b/Source/WTF/wtf/spi/darwin/XPCSPI.h
@@ -56,11 +56,15 @@ typedef void* xpc_connection_t;
typedef const struct _xpc_type_s* xpc_type_t;
+#if PLATFORM(IOS) && __has_attribute(noescape)
+#define XPC_NOESCAPE __attribute__((__noescape__))
+#endif
+
#if COMPILER_SUPPORTS(BLOCKS)
typedef bool (^xpc_array_applier_t)(size_t index, xpc_object_t);
typedef bool (^xpc_dictionary_applier_t)(const char *key, xpc_object_t value);
typedef void (^xpc_handler_t)(xpc_object_t);
-#endif
+#endif // COMPILER_SUPPORTS(BLOCKS)
typedef void (*xpc_connection_handler_t)(xpc_connection_t connection);
@@ -79,6 +83,10 @@ typedef void (*xpc_connection_handler_t)(xpc_connection_t connection);
#include <xpc/private.h>
#endif
+#if !defined(XPC_NOESCAPE)
+#define XPC_NOESCAPE
+#endif
+
EXTERN_C const struct _xpc_dictionary_s _xpc_error_connection_invalid;
EXTERN_C const struct _xpc_dictionary_s _xpc_error_termination_imminent;
@@ -90,8 +98,8 @@ EXTERN_C const struct _xpc_type_s _xpc_type_string;
EXTERN_C xpc_object_t xpc_array_create(const xpc_object_t*, size_t count);
#if COMPILER_SUPPORTS(BLOCKS)
-EXTERN_C bool xpc_array_apply(xpc_object_t, xpc_array_applier_t);
-EXTERN_C bool xpc_dictionary_apply(xpc_object_t xdict, xpc_dictionary_applier_t applier);
+EXTERN_C bool xpc_array_apply(xpc_object_t, XPC_NOESCAPE xpc_array_applier_t);
+EXTERN_C bool xpc_dictionary_apply(xpc_object_t xdict, XPC_NOESCAPE xpc_dictionary_applier_t applier);
#endif
EXTERN_C size_t xpc_array_get_count(xpc_object_t);
EXTERN_C const char* xpc_array_get_string(xpc_object_t, size_t index);