From ccead3fda488ff8b6237ccc200b01f205acce956 Mon Sep 17 00:00:00 2001 From: Khan Winter <35942988+thecoolwinter@users.noreply.github.com> Date: Wed, 25 Jun 2025 10:05:36 -0500 Subject: [PATCH] Ensure Coordinators' Lifetime is Equal To The Editor's --- .../CodeEditSourceEditor/Controller/TextViewController.swift | 1 + Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Sources/CodeEditSourceEditor/Controller/TextViewController.swift b/Sources/CodeEditSourceEditor/Controller/TextViewController.swift index 92872d8e7..34798e8b7 100644 --- a/Sources/CodeEditSourceEditor/Controller/TextViewController.swift +++ b/Sources/CodeEditSourceEditor/Controller/TextViewController.swift @@ -230,6 +230,7 @@ public class TextViewController: NSViewController { coordinators.forEach { $0.prepareCoordinator(controller: self) } + self.textCoordinators = coordinators.map { WeakCoordinator($0) } } required init?(coder: NSCoder) { diff --git a/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift b/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift index 7cdd05a75..cf31a279a 100644 --- a/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift +++ b/Sources/CodeEditSourceEditor/SourceEditor/SourceEditor.swift @@ -128,9 +128,6 @@ public struct SourceEditor: NSViewControllerRepresentable { context.coordinator.isUpdateFromTextView = false } - // Set this no matter what to avoid having to compare object pointers. - controller.textCoordinators = coordinators.map { WeakCoordinator($0) } - // Do manual diffing to reduce the amount of reloads. // This helps a lot in view performance, as it otherwise gets triggered on each environment change. guard !paramsAreEqual(controller: controller, coordinator: context.coordinator) else {