From: Jason A. Donenfeld Date: Thu, 13 Dec 2018 18:43:12 +0000 (+0100) Subject: Avoid escaping heap allocation X-Git-Tag: 0.0.20181104-6~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7323a0061228adee564ef67658b32fdafffc4e7d;p=thirdparty%2Fwireguard-apple.git Avoid escaping heap allocation Signed-off-by: Jason A. Donenfeld --- diff --git a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift index 8fb60b1..6d3f332 100644 --- a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift +++ b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift @@ -159,9 +159,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } // swiftlint:disable large_tuple -func withStringsAsGoStrings(_ s1: String, _ s2: String? = nil, _ s3: String? = nil, _ s4: String? = nil, call: @escaping ((gostring_t, gostring_t, gostring_t, gostring_t)) -> R) -> R { - func helper(_ p1: UnsafePointer?, _ p2: UnsafePointer?, _ p3: UnsafePointer?, _ p4: UnsafePointer?) -> R { +func withStringsAsGoStrings(_ s1: String, _ s2: String? = nil, _ s3: String? = nil, _ s4: String? = nil, call: ((gostring_t, gostring_t, gostring_t, gostring_t)) -> R) -> R { + func helper(_ p1: UnsafePointer?, _ p2: UnsafePointer?, _ p3: UnsafePointer?, _ p4: UnsafePointer?, _ call: ((gostring_t, gostring_t, gostring_t, gostring_t)) -> R) -> R { return call((gostring_t(p: p1, n: s1.utf8.count), gostring_t(p: p2, n: s2?.utf8.count ?? 0), gostring_t(p: p3, n: s3?.utf8.count ?? 0), gostring_t(p: p4, n: s4?.utf8.count ?? 0))) } - return helper(s1, s2, s3, s4) + return helper(s1, s2, s3, s4, call) }