diff options
| author | Jon Petersson <jon.petersson@mullvad.net> | 2025-04-15 15:53:59 +0200 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@mullvad.net> | 2025-04-15 15:53:59 +0200 |
| commit | c90a98e3430c8047b17b12ca9646af6d4478d3ea (patch) | |
| tree | d0f5fa50299da5bfeb65ed591e6c16c70e5cc4dc /ios/MullvadRustRuntime/String+UnsafePointer.swift | |
| parent | effafb699b8f6831cbc6df0bcaa51766d9a44718 (diff) | |
| parent | 14db956bcd66b841734ed86b647e95f69034bffe (diff) | |
| download | mullvadvpn-c90a98e3430c8047b17b12ca9646af6d4478d3ea.tar.xz mullvadvpn-c90a98e3430c8047b17b12ca9646af6d4478d3ea.zip | |
Merge branch 'implement-sendproblemreport-using-mullvad-api-ios-1134-2'
Diffstat (limited to 'ios/MullvadRustRuntime/String+UnsafePointer.swift')
| -rw-r--r-- | ios/MullvadRustRuntime/String+UnsafePointer.swift | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ios/MullvadRustRuntime/String+UnsafePointer.swift b/ios/MullvadRustRuntime/String+UnsafePointer.swift new file mode 100644 index 0000000000..1cb2017c96 --- /dev/null +++ b/ios/MullvadRustRuntime/String+UnsafePointer.swift @@ -0,0 +1,27 @@ +// +// String+UnsafePointer.swift +// MullvadVPN +// +// Created by Mojgan on 2025-04-02. +// Copyright © 2025 Mullvad VPN AB. All rights reserved. +// + +import Foundation + +extension String { + // Ensure the string is converted to a null-terminated C string + // UnsafePointer provides no automated memory management or alignment guarantees. + // The caller is responsible to manage the memory + func toCStringPointer() -> UnsafePointer<CChar>? { + // Convert the Swift string to a null-terminated UTF-8 C string + guard let cString = cString(using: .utf8) else { return nil } + + // Allocate memory for characters + null terminator + let pointer = UnsafeMutablePointer<CChar>.allocate(capacity: cString.count) + + // Copy the characters (including the null terminator) + pointer.initialize(from: cString, count: cString.count) + + return UnsafePointer(pointer) + } +} |
