diff options
| author | 2026-06-13 16:30:31 +0000 | |
|---|---|---|
| committer | 2026-06-13 16:30:31 +0000 | |
| commit | a6d0b99fd8dc28a47cee36f16890c66ea3acb746 (patch) | |
| tree | 9f33b7385f20ccc90f5b899aefcf0f715ba2db00 /object/tree/tree.go | |
| parent | deps: Update lgo (diff) | |
object/tree: Parse, entries, etc don't clone.
Diffstat (limited to 'object/tree/tree.go')
| -rw-r--r-- | object/tree/tree.go | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/object/tree/tree.go b/object/tree/tree.go index 431df649..f40bb165 100644 --- a/object/tree/tree.go +++ b/object/tree/tree.go @@ -1,8 +1,6 @@ package tree import ( - "slices" - "lindenii.org/go/furgit/object/id" "lindenii.org/go/furgit/object/tree/mode" ) @@ -21,15 +19,19 @@ type Tree struct { // Entry represents a single entry in a tree. type Entry struct { Mode mode.Mode - Name string + Name []byte ID id.ObjectID } -// Entries returns a copy of the tree's entries in Git tree order. +// Entries returns the tree's entries in Git tree order. // -// Mutating the returned slice does not affect the tree. +// The returned slice aliases the tree's internal storage, +// so it must not be mutated, +// and it is invalidated by any subsequent call that mutates the tree, +// such as [Tree.Insert]. +// Use [Tree.Clone] for an independent tree. // -// Labels: Life-Independent. +// Labels: Life-Parent, Mut-No. func (tree *Tree) Entries() []Entry { - return slices.Clone(tree.entries) + return tree.entries } |
