From c225daa8458768b5dd89d24dc561bbbfa0f987b4 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Wed, 3 Jun 2020 19:47:38 +0200 Subject: [PATCH] app/internal/window: [macOS] use regular map for view-to-window lookups All accesses to the view map now happens on the main thread, so there is no need for a sync.Map anymore. Signed-off-by: Elias Naur --- app/internal/window/os_macos.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/internal/window/os_macos.go b/app/internal/window/os_macos.go index 32845de3..049c5519 100644 --- a/app/internal/window/os_macos.go +++ b/app/internal/window/os_macos.go @@ -8,7 +8,6 @@ import ( "errors" "image" "runtime" - "sync" "time" "unicode" "unicode/utf16" @@ -57,7 +56,7 @@ type window struct { } // viewMap is the mapping from Cocoa NSViews to Go windows. -var viewMap sync.Map +var viewMap = make(map[C.CFTypeRef]*window) var mainWindow = newWindowRendezvous() @@ -74,19 +73,19 @@ func mustView(view C.CFTypeRef) *window { } func lookupView(view C.CFTypeRef) (*window, bool) { - w, exists := viewMap.Load(view) + w, exists := viewMap[view] if !exists { return nil, false } - return w.(*window), true + return w, true } func deleteView(view C.CFTypeRef) { - viewMap.Delete(view) + delete(viewMap, view) } func insertView(view C.CFTypeRef, w *window) { - viewMap.Store(view, w) + viewMap[view] = w } func (w *window) contextView() C.CFTypeRef {