From a9f33643f6eba13a14bc02c8ed8d661ef2a957ed Mon Sep 17 00:00:00 2001 From: Stuart Breckenridge Date: Sun, 2 Feb 2025 22:09:58 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=A9=B9=20Fixes=20memory=20leaks=20caused?= =?UTF-8?q?=20by=20NSString=20usage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared/Article Rendering/ArticleRenderer.swift | 6 +++--- Shared/ArticleStyles/ArticleTheme.swift | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Shared/Article Rendering/ArticleRenderer.swift b/Shared/Article Rendering/ArticleRenderer.swift index 9ecd6a7b7..58f8c938d 100644 --- a/Shared/Article Rendering/ArticleRenderer.swift +++ b/Shared/Article Rendering/ArticleRenderer.swift @@ -26,7 +26,7 @@ struct ArticleRenderer { init(name: String) { url = Bundle.main.url(forResource: name, withExtension: "html")! baseURL = url.deletingLastPathComponent() - html = try! NSString(contentsOfFile: url.path, encoding: String.Encoding.utf8.rawValue) as String + html = try! String(contentsOfFile: url.path, encoding: .utf8) } } @@ -180,13 +180,13 @@ private extension ArticleRenderer { static var defaultStyleSheet: String = { let path = Bundle.main.path(forResource: "styleSheet", ofType: "css")! - let s = try! NSString(contentsOfFile: path, encoding: String.Encoding.utf8.rawValue) + let s = try! String(contentsOfFile: path, encoding: .utf8) return "\n\(s)\n" }() static let defaultTemplate: String = { let path = Bundle.main.path(forResource: "template", ofType: "html")! - let s = try! NSString(contentsOfFile: path, encoding: String.Encoding.utf8.rawValue) + let s = try! String(contentsOfFile: path, encoding: .utf8) return s as String }() diff --git a/Shared/ArticleStyles/ArticleTheme.swift b/Shared/ArticleStyles/ArticleTheme.swift index 1d9eeea9b..4edb376b8 100644 --- a/Shared/ArticleStyles/ArticleTheme.swift +++ b/Shared/ArticleStyles/ArticleTheme.swift @@ -85,8 +85,9 @@ struct ArticleTheme: Equatable { if !FileManager.default.fileExists(atPath: f) { return nil } - - if let s = try? NSString(contentsOfFile: f, usedEncoding: nil) as String { + + var encoding = String.Encoding.utf8 + if let s = try? String(contentsOfFile: f, usedEncoding: &encoding) { return s } return nil