From c55e2d4b44cf14d7e99efd731976692dac47157f Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 24 Aug 2025 12:41:58 +0200 Subject: [PATCH] fix(georelay): make CSV parser nonisolated and call as Self.parseCSV to satisfy Swift 6 actor isolation --- bitchat/Nostr/GeoRelayDirectory.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bitchat/Nostr/GeoRelayDirectory.swift b/bitchat/Nostr/GeoRelayDirectory.swift index 1dc63751..8151f952 100644 --- a/bitchat/Nostr/GeoRelayDirectory.swift +++ b/bitchat/Nostr/GeoRelayDirectory.swift @@ -84,7 +84,7 @@ final class GeoRelayDirectory { if let cache = self.cacheURL(), let data = try? Data(contentsOf: cache), let text = String(data: data, encoding: .utf8) { - let arr = parseCSV(text) + let arr = Self.parseCSV(text) if !arr.isEmpty { return arr } } // Try bundled resource(s) @@ -95,7 +95,7 @@ final class GeoRelayDirectory { ].compactMap { $0 } for url in bundleCandidates { if let data = try? Data(contentsOf: url), let text = String(data: data, encoding: .utf8) { - let arr = parseCSV(text) + let arr = Self.parseCSV(text) if !arr.isEmpty { return arr } } } @@ -103,13 +103,13 @@ final class GeoRelayDirectory { if let cwd = FileManager.default.currentDirectoryPath as String?, let data = try? Data(contentsOf: URL(fileURLWithPath: cwd).appendingPathComponent("relays/online_relays_gps.csv")), let text = String(data: data, encoding: .utf8) { - return parseCSV(text) + return Self.parseCSV(text) } SecureLogger.log("GeoRelayDirectory: no local CSV found; entries empty", category: SecureLogger.session, level: .warning) return [] } - private static func parseCSV(_ text: String) -> [Entry] { + nonisolated static func parseCSV(_ text: String) -> [Entry] { var result: Set = [] let lines = text.split(whereSeparator: { $0.isNewline }) // Skip header if present