mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-26 22:04:32 +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:
@@ -90,7 +90,7 @@ func (t *transform) Transform(ctx *resources.ResourceTransformationCtx) error {
|
||||
for _, ip := range opts.IncludePaths {
|
||||
info, err := t.c.workFs.Stat(filepath.Clean(ip))
|
||||
if err == nil {
|
||||
filename := info.(hugofs.FileMetaInfo).Meta().Filename()
|
||||
filename := info.(hugofs.FileMetaInfo).Meta().Filename
|
||||
args.IncludePaths = append(args.IncludePaths, filename)
|
||||
}
|
||||
}
|
||||
@@ -191,7 +191,7 @@ func (t importResolver) CanonicalizeURL(url string) (string, error) {
|
||||
fi, err := t.c.sfs.Fs.Stat(filenameToCheck)
|
||||
if err == nil {
|
||||
if fim, ok := fi.(hugofs.FileMetaInfo); ok {
|
||||
return "file://" + filepath.ToSlash(fim.Meta().Filename()), nil
|
||||
return "file://" + filepath.ToSlash(fim.Meta().Filename), nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -55,7 +55,7 @@ func (t *toCSSTransformation) Transform(ctx *resources.ResourceTransformationCtx
|
||||
for _, ip := range options.from.IncludePaths {
|
||||
info, err := t.c.workFs.Stat(filepath.Clean(ip))
|
||||
if err == nil {
|
||||
filename := info.(hugofs.FileMetaInfo).Meta().Filename()
|
||||
filename := info.(hugofs.FileMetaInfo).Meta().Filename
|
||||
options.to.IncludePaths = append(options.to.IncludePaths, filename)
|
||||
}
|
||||
}
|
||||
@@ -105,7 +105,7 @@ func (t *toCSSTransformation) Transform(ctx *resources.ResourceTransformationCtx
|
||||
fi, err := t.c.sfs.Fs.Stat(filenameToCheck)
|
||||
if err == nil {
|
||||
if fim, ok := fi.(hugofs.FileMetaInfo); ok {
|
||||
return fim.Meta().Filename(), "", true
|
||||
return fim.Meta().Filename, "", true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user