diff options
Diffstat (limited to 'hugolib/content_map_page.go')
-rw-r--r-- | hugolib/content_map_page.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go index c3f06a592..5e8646b21 100644 --- a/hugolib/content_map_page.go +++ b/hugolib/content_map_page.go @@ -37,6 +37,7 @@ import ( "github.com/gohugoio/hugo/hugolib/doctree" "github.com/gohugoio/hugo/hugolib/pagesfromdata" "github.com/gohugoio/hugo/identity" + "github.com/gohugoio/hugo/lazy" "github.com/gohugoio/hugo/media" "github.com/gohugoio/hugo/output" "github.com/gohugoio/hugo/resources" @@ -109,6 +110,11 @@ type pageMap struct { cfg contentMapConfig } +// Invoked on rebuilds. +func (m *pageMap) Reset() { + m.pageReverseIndex.Reset() +} + // pageTrees holds pages and resources in a tree structure for all sites/languages. // Each site gets its own tree set via the Shape method. type pageTrees struct { @@ -958,9 +964,7 @@ type contentTreeReverseIndex struct { } func (c *contentTreeReverseIndex) Reset() { - c.contentTreeReverseIndexMap = &contentTreeReverseIndexMap{ - m: make(map[any]contentNodeI), - } + c.init.ResetWithLock().Unlock() } func (c *contentTreeReverseIndex) Get(key any) contentNodeI { @@ -972,7 +976,7 @@ func (c *contentTreeReverseIndex) Get(key any) contentNodeI { } type contentTreeReverseIndexMap struct { - init sync.Once + init lazy.OnceMore m map[any]contentNodeI } |