diff options
| author | 2026-01-17 22:56:53 +0800 | |
|---|---|---|
| committer | 2026-01-17 22:56:53 +0800 | |
| commit | 7a0ab5f77917a36a87945f6a88b036b9b6ba88ee (patch) | |
| tree | 06947107af26e45bb5006276daa4b4d611f5dee2 /obj_tree.go | |
| parent | README: Clarify that the sha1 build tag is for testing only (diff) | |
| signature | No signature | |
hash: Key by algorithm, not size
Diffstat (limited to 'obj_tree.go')
| -rw-r--r-- | obj_tree.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/obj_tree.go b/obj_tree.go index ccbea694..0ae8b3ac 100644 --- a/obj_tree.go +++ b/obj_tree.go @@ -83,7 +83,7 @@ func parseTree(id Hash, body []byte, repo *Repository) (*StoredTree, error) { } var child Hash copy(child.data[:], body[i:i+repo.hashSize]) - child.size = repo.hashSize + child.algo = repo.hashAlgo i += repo.hashSize mode, err := strconv.ParseUint(string(modeBytes), 8, 32) @@ -112,7 +112,7 @@ func (tree *Tree) serialize() []byte { var bodyLen int for _, e := range tree.Entries { mode := strconv.FormatUint(uint64(e.Mode), 8) - bodyLen += len(mode) + 1 + len(e.Name) + 1 + e.ID.size + bodyLen += len(mode) + 1 + len(e.Name) + 1 + e.ID.Size() } body := make([]byte, bodyLen) @@ -125,7 +125,8 @@ func (tree *Tree) serialize() []byte { pos += copy(body[pos:], e.Name) body[pos] = 0 pos++ - pos += copy(body[pos:], e.ID.data[:e.ID.size]) + size := e.ID.Size() + pos += copy(body[pos:], e.ID.data[:size]) } return body |
