mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-28 22:19:59 +02:00
hugofs: Make FileMeta a struct
This commit started out investigating a `concurrent map read write` issue, ending by replacing the map with a struct. This is easier to reason about, and it's more effective: ``` name old time/op new time/op delta SiteNew/Regular_Deep_content_tree-16 71.5ms ± 3% 69.4ms ± 5% ~ (p=0.200 n=4+4) name old alloc/op new alloc/op delta SiteNew/Regular_Deep_content_tree-16 29.7MB ± 0% 27.9MB ± 0% -5.82% (p=0.029 n=4+4) name old allocs/op new allocs/op delta SiteNew/Regular_Deep_content_tree-16 313k ± 0% 303k ± 0% -3.35% (p=0.029 n=4+4) ``` See #8749
This commit is contained in:
@@ -246,8 +246,8 @@ func (c *PageCollections) getContentNode(context page.Page, isReflink bool, ref
|
||||
base = context.SectionsPath()
|
||||
} else {
|
||||
meta := context.File().FileInfo().Meta()
|
||||
base = filepath.ToSlash(filepath.Dir(meta.Path()))
|
||||
if meta.Classifier() == files.ContentClassLeaf {
|
||||
base = filepath.ToSlash(filepath.Dir(meta.Path))
|
||||
if meta.Classifier == files.ContentClassLeaf {
|
||||
// Bundles are stored in subfolders e.g. blog/mybundle/index.md,
|
||||
// so if the user has not explicitly asked to go up,
|
||||
// look on the "blog" level.
|
||||
@@ -304,11 +304,11 @@ func (c *PageCollections) getContentNode(context page.Page, isReflink bool, ref
|
||||
|
||||
var module string
|
||||
if context != nil && !context.File().IsZero() {
|
||||
module = context.File().FileInfo().Meta().Module()
|
||||
module = context.File().FileInfo().Meta().Module
|
||||
}
|
||||
|
||||
if module == "" && !c.pageMap.s.home.File().IsZero() {
|
||||
module = c.pageMap.s.home.File().FileInfo().Meta().Module()
|
||||
module = c.pageMap.s.home.File().FileInfo().Meta().Module
|
||||
}
|
||||
|
||||
if module != "" {
|
||||
|
Reference in New Issue
Block a user