@@ -419,9 +419,13 @@ public final class Connection {
419
419
}
420
420
421
421
let box : Trace = { callback ( String ( cString: $0) ) }
422
- sqlite3_trace ( handle, { callback, SQL in
423
- unsafeBitCast ( callback, to: Trace . self) ( SQL!)
424
- } , unsafeBitCast ( box, to: UnsafeMutableRawPointer . self) )
422
+ sqlite3_trace ( handle, {
423
+ ( callback: UnsafeMutableRawPointer ? , SQL: UnsafePointer < Int8 > ? ) in
424
+ guard let callback = callback, let SQL = SQL else { return }
425
+ unsafeBitCast ( callback, to: Trace . self) ( SQL)
426
+ } ,
427
+ unsafeBitCast ( box, to: UnsafeMutableRawPointer . self)
428
+ )
425
429
trace = box
426
430
}
427
431
fileprivate typealias Trace = @convention ( block) ( UnsafePointer < Int8 > ) -> Void
@@ -584,14 +588,14 @@ public final class Connection {
584
588
/// - block: A collation function that takes two strings and returns the
585
589
/// comparison result.
586
590
public func createCollation( _ collation: String , _ block: @escaping ( _ lhs: String , _ rhs: String ) -> ComparisonResult ) throws {
587
- let box : Collation = { ( lhs: UnsafeRawPointer , rhs: UnsafeRawPointer ) in
591
+ let box : Collation = { ( lhs: UnsafeRawPointer , rhs: UnsafeRawPointer ) in
588
592
let lstr = String ( cString: lhs. assumingMemoryBound ( to: UInt8 . self) )
589
593
let rstr = String ( cString: rhs. assumingMemoryBound ( to: UInt8 . self) )
590
594
return Int32 ( block ( lstr, rstr) . rawValue)
591
595
}
592
596
try check ( sqlite3_create_collation_v2 ( handle, collation, SQLITE_UTF8,
593
597
unsafeBitCast ( box, to: UnsafeMutableRawPointer . self) ,
594
- { ( callback: UnsafeMutableRawPointer ? , _, lhs: UnsafeRawPointer ? , _, rhs: UnsafeRawPointer ? ) in /* xCompare */
598
+ { ( callback: UnsafeMutableRawPointer ? , _, lhs: UnsafeRawPointer ? , _, rhs: UnsafeRawPointer ? ) in /* xCompare */
595
599
if let lhs = lhs, let rhs = rhs {
596
600
return unsafeBitCast ( callback, to: Collation . self) ( lhs, rhs)
597
601
} else {
0 commit comments