summaryrefslogtreecommitdiff
path: root/sysdatacache_windows.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-11 22:41:55 -0500
committerPietro Gagliardi <[email protected]>2014-02-11 22:41:55 -0500
commit0f373195de316b1b20a05ebff1463fb8a56b1f1b (patch)
treedc7d5159640fadfbffa9f9ae3bb84e9a4cc5f2b3 /sysdatacache_windows.go
parent6da43e8bb7bcd13de0a2a39ea8b0593ba9f279ef (diff)
Changed the sysData cache so that if we didn't fill it in yet, getSysData() returns nil instead of panicking, and the standard window procedure jumps directly to the default handler. Not what I originally wanted to do, but whatever, it finally works!
Diffstat (limited to 'sysdatacache_windows.go')
-rw-r--r--sysdatacache_windows.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/sysdatacache_windows.go b/sysdatacache_windows.go
index 1bdb128..620d6ac 100644
--- a/sysdatacache_windows.go
+++ b/sysdatacache_windows.go
@@ -18,16 +18,18 @@ var (
sysDatasLock sync.Mutex
)
-// MUST HAVE LOCKED BEFORE CALLING
func addSysData(hwnd _HWND, s *sysData) {
+ sysDatasLock.Lock()
+ defer sysDatasLock.Unlock()
sysDatas[hwnd] = &sdcEntry{
s: s,
members: map[_HMENU]*sysData{},
}
}
-// MUST HAVE LOCKED BEFORE CALLING
func addIDSysData(hwnd _HWND, id _HMENU, s *sysData) {
+ sysDatasLock.Lock()
+ defer sysDatasLock.Unlock()
if ss, ok := sysDatas[hwnd]; ok {
ss.members[id] = s
}
@@ -40,7 +42,7 @@ func getSysData(hwnd _HWND) *sysData {
if ss, ok := sysDatas[hwnd]; ok {
return ss.s
}
- panic(fmt.Sprintf("getting nonexistent HWND %d\n", hwnd))
+ return nil
}
func getIDSysData(hwnd _HWND, id _HMENU) *sysData {