From c546c025e8168b68fd4ae7cbb2b57ae8a711322b Mon Sep 17 00:00:00 2001 From: Konrad Malawski Date: Wed, 22 Apr 2026 19:05:14 +0900 Subject: [PATCH] Prefer unsafeBitcast on arrays, the as! is costly --- Sources/SwiftJavaJNICore/BridgedValues/JavaValue+Array.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/SwiftJavaJNICore/BridgedValues/JavaValue+Array.swift b/Sources/SwiftJavaJNICore/BridgedValues/JavaValue+Array.swift index 61ab0cf..01ff313 100644 --- a/Sources/SwiftJavaJNICore/BridgedValues/JavaValue+Array.swift +++ b/Sources/SwiftJavaJNICore/BridgedValues/JavaValue+Array.swift @@ -45,7 +45,7 @@ extension Array: JavaValue where Element: JavaValue { } initializedCount = count } - self = result as! Self + self = unsafeBitCast(result, to: Self.self) } else if Element.self == Int8.self { let result = [Int8](unsafeUninitializedCapacity: Int(jniCount)) { buffer, initializedCount in Int8.jniGetArrayRegion(in: environment)( @@ -57,7 +57,7 @@ extension Array: JavaValue where Element: JavaValue { ) initializedCount = count } - self = result as! Self + self = unsafeBitCast(result, to: Self.self) } else { // Slow path for other types: create intermediate array and map let jniArray = [Element.JNIType](unsafeUninitializedCapacity: count) { buffer, initializedCount in