diff options
Diffstat (limited to 'resource/image_cache.go')
-rw-r--r-- | resource/image_cache.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/resource/image_cache.go b/resource/image_cache.go index 4fb45c17f..e5149e7a2 100644 --- a/resource/image_cache.go +++ b/resource/image_cache.go @@ -33,7 +33,7 @@ type imageCache struct { func (c *imageCache) isInCache(key string) bool { c.mu.RLock() - _, found := c.store[key] + _, found := c.store[c.normalizeKey(key)] c.mu.RUnlock() return found } @@ -41,6 +41,7 @@ func (c *imageCache) isInCache(key string) bool { func (c *imageCache) deleteByPrefix(prefix string) { c.mu.Lock() defer c.mu.Unlock() + prefix = c.normalizeKey(prefix) for k := range c.store { if strings.HasPrefix(k, prefix) { delete(c.store, k) @@ -48,6 +49,16 @@ func (c *imageCache) deleteByPrefix(prefix string) { } } +func (c *imageCache) normalizeKey(key string) string { + // It is a path with Unix style slashes and it always starts with a leading slash. + key = filepath.ToSlash(key) + if !strings.HasPrefix(key, "/") { + key = "/" + key + } + + return key +} + func (c *imageCache) clear() { c.mu.Lock() defer c.mu.Unlock() |