@@ -419,9 +419,13 @@ public final class Connection {
419419 }
420420
421421 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+ )
425429 trace = box
426430 }
427431 fileprivate typealias Trace = @convention ( block) ( UnsafePointer < Int8 > ) -> Void
@@ -584,14 +588,14 @@ public final class Connection {
584588 /// - block: A collation function that takes two strings and returns the
585589 /// comparison result.
586590 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
588592 let lstr = String ( cString: lhs. assumingMemoryBound ( to: UInt8 . self) )
589593 let rstr = String ( cString: rhs. assumingMemoryBound ( to: UInt8 . self) )
590594 return Int32 ( block ( lstr, rstr) . rawValue)
591595 }
592596 try check ( sqlite3_create_collation_v2 ( handle, collation, SQLITE_UTF8,
593597 unsafeBitCast ( box, to: UnsafeMutableRawPointer . self) ,
594- { ( callback: UnsafeMutableRawPointer ? , _, lhs: UnsafeRawPointer ? , _, rhs: UnsafeRawPointer ? ) in /* xCompare */
598+ { ( callback: UnsafeMutableRawPointer ? , _, lhs: UnsafeRawPointer ? , _, rhs: UnsafeRawPointer ? ) in /* xCompare */
595599 if let lhs = lhs, let rhs = rhs {
596600 return unsafeBitCast ( callback, to: Collation . self) ( lhs, rhs)
597601 } else {
0 commit comments