diff options
author | Alexey Proskuryakov <ap@apple.com> | 2018-01-19 18:09:23 +0000 |
---|---|---|
committer | Konstantin Tokarev <annulen@yandex.ru> | 2019-06-07 03:01:28 +0300 |
commit | 3dc7d3b44fa620814acd553c1a82f020183951b3 (patch) | |
tree | 4189ce7929f550e492983cf30e3302f8e8c46dc1 | |
parent | ac794c7928225108f27bbad161682c74756da8fb (diff) |
Update XPCSPI.h
https://bugs.webkit.org/show_bug.cgi?id=181827
rdar://problem/36393031
Reviewed by Daniel Bates.
* wtf/spi/darwin/XPCSPI.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@227212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Change-Id: I808f2a26d9d7f108675617553439fbba2cd504e2
Reviewed-by: Konstantin Tokarev <annulen@yandex.ru>
-rw-r--r-- | Source/WTF/wtf/spi/darwin/XPCSPI.h | 14 |
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); |