diff options
| author | 2026-03-04 08:26:56 +0800 | |
|---|---|---|
| committer | 2026-03-04 08:59:53 +0800 | |
| commit | ab7501be34032fb9e5c48726a68ae90a917af9eb (patch) | |
| tree | 20d005647569befea8133e953c3270e8fd2a2a5b /object/tree_serialize.go | |
| parent | *: gofumpt (diff) | |
| signature | No signature | |
*: Lint
Diffstat (limited to 'object/tree_serialize.go')
| -rw-r--r-- | object/tree_serialize.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/object/tree_serialize.go b/object/tree_serialize.go index 5c10bef6..42f60f72 100644 --- a/object/tree_serialize.go +++ b/object/tree_serialize.go @@ -11,6 +11,7 @@ import ( // SerializeWithoutHeader renders the raw tree body bytes. func (tree *Tree) SerializeWithoutHeader() ([]byte, error) { var bodyLen int + for _, entry := range tree.Entries { mode := strconv.FormatUint(uint64(entry.Mode), 8) bodyLen += len(mode) + 1 + len(entry.Name) + 1 + entry.ID.Size() @@ -18,6 +19,7 @@ func (tree *Tree) SerializeWithoutHeader() ([]byte, error) { body := make([]byte, bodyLen) pos := 0 + for _, entry := range tree.Entries { mode := strconv.FormatUint(uint64(entry.Mode), 8) pos += copy(body[pos:], mode) @@ -39,12 +41,15 @@ func (tree *Tree) SerializeWithHeader() ([]byte, error) { if err != nil { return nil, err } + header, ok := objectheader.Encode(objecttype.TypeTree, int64(len(body))) if !ok { return nil, errors.New("object: tree: failed to encode object header") } + raw := make([]byte, len(header)+len(body)) copy(raw, header) copy(raw[len(header):], body) + return raw, nil } |
