From a43bfa63aff9fa3d1935beea54a31529cd7583d4 Mon Sep 17 00:00:00 2001 From: Yauheni Khnykin <4347948+Hsilgos@users.noreply.github.com> Date: Tue, 2 Jan 2024 09:35:40 +0100 Subject: [PATCH] Makes failure more clear at UTF-8 decoding error (#1564) Signed-off-by: Yauheni Khnykin --- CHANGELOG.md | 5 +++++ .../src/main/resources/swift/BuiltinConversions.swift | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab5557174c..bda760b7da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Gluecodium project Release Notes +## Unreleased +## 13.7.3 +### Features: + * Swift crashes with more clear error in case when UTF-8 string can't be decoded. + ## 13.7.2 Release date: 2023-10-25 ### Bug fixes: diff --git a/gluecodium/src/main/resources/swift/BuiltinConversions.swift b/gluecodium/src/main/resources/swift/BuiltinConversions.swift index 03708c9495..6789cc636a 100644 --- a/gluecodium/src/main/resources/swift/BuiltinConversions.swift +++ b/gluecodium/src/main/resources/swift/BuiltinConversions.swift @@ -31,8 +31,13 @@ extension String { // String internal func copyFromCType(_ handle: _baseRef) -> String { - return String(data: Data(bytes: std_string_data_get(handle), - count: Int(std_string_size_get(handle))), encoding: .utf8)! + if let convertedString = String(data: Data(bytes: std_string_data_get(handle), + count: Int(std_string_size_get(handle))), + encoding: .utf8) { + return convertedString + } + + fatalError("Failed to decode character buffer as UTF-8 string") } internal func moveFromCType(_ handle: _baseRef) -> String {