mirror of
https://github.com/syncthing/syncthing.git
synced 2025-12-23 22:18:14 -05:00
chore(fs): slightly reduce memory usage of IsParent (#10223)
### Purpose Small optimizations for IsParent and IsInternal, to avoid needless allocations.
This commit is contained in:
@@ -285,13 +285,14 @@ func NewFilesystem(fsType FilesystemType, uri string, opts ...Option) Filesystem
|
||||
return fs
|
||||
}
|
||||
|
||||
// fs cannot import config or versioner, so we hard code .stfolder
|
||||
// (config.DefaultMarkerName) and .stversions (versioner.DefaultPath)
|
||||
var internals = []string{".stfolder", ".stignore", ".stversions"}
|
||||
|
||||
// IsInternal returns true if the file, as a path relative to the folder
|
||||
// root, represents an internal file that should always be ignored. The file
|
||||
// path must be clean (i.e., in canonical shortest form).
|
||||
func IsInternal(file string) bool {
|
||||
// fs cannot import config or versioner, so we hard code .stfolder
|
||||
// (config.DefaultMarkerName) and .stversions (versioner.DefaultPath)
|
||||
internals := []string{".stfolder", ".stignore", ".stversions"}
|
||||
for _, internal := range internals {
|
||||
if file == internal {
|
||||
return true
|
||||
|
||||
@@ -169,10 +169,16 @@ func IsParent(path, parent string) bool {
|
||||
// not be caught below.
|
||||
return path != "/"
|
||||
}
|
||||
if parent[len(parent)-1] != PathSeparator {
|
||||
parent += pathSeparatorString
|
||||
if parent[len(parent)-1] == PathSeparator {
|
||||
return strings.HasPrefix(path, parent)
|
||||
}
|
||||
return strings.HasPrefix(path, parent)
|
||||
if !strings.HasPrefix(path, parent) {
|
||||
return false
|
||||
}
|
||||
if len(path) <= len(parent) {
|
||||
return false
|
||||
}
|
||||
return path[len(parent)] == PathSeparator
|
||||
}
|
||||
|
||||
func CommonPrefix(first, second string) string {
|
||||
|
||||
Reference in New Issue
Block a user