diff options
Diffstat (limited to 'format/pack')
| -rw-r--r-- | format/pack/ingest/resolve.go | 17 | ||||
| -rw-r--r-- | format/pack/ingest/state.go | 4 | ||||
| -rw-r--r-- | format/pack/ingest/stream_scan.go | 2 | ||||
| -rw-r--r-- | format/pack/ingest/thin_fix.go | 2 |
4 files changed, 13 insertions, 12 deletions
diff --git a/format/pack/ingest/resolve.go b/format/pack/ingest/resolve.go index c6336d18..6058a275 100644 --- a/format/pack/ingest/resolve.go +++ b/format/pack/ingest/resolve.go @@ -1,6 +1,7 @@ package ingest import ( + "bytes" "errors" "fmt" "io" @@ -45,7 +46,7 @@ func resolveAll(state *ingestState) error { record.realType = ty record.objectID = id record.resolved = true - state.objectToRecord[id.String()] = idx + state.objectToRecord[id] = idx state.baseCache.add(idx, ty, content) } @@ -87,7 +88,7 @@ func resolveRecord(state *ingestState, idx int, visiting map[int]struct{}) (obje record.objectID = id record.realType = ty record.resolved = true - state.objectToRecord[id.String()] = idx + state.objectToRecord[id] = idx state.baseCache.add(idx, ty, content) return ty, content, nil @@ -112,7 +113,7 @@ func resolveRecord(state *ingestState, idx int, visiting map[int]struct{}) (obje return objecttype.TypeInvalid, nil, err } case objecttype.TypeRefDelta: - baseIdx, ok := state.objectToRecord[record.baseObject.String()] + baseIdx, ok := state.objectToRecord[record.baseObject] if ok { baseType, baseContent, err = resolveRecord(state, baseIdx, visiting) if err != nil { @@ -140,7 +141,7 @@ func resolveRecord(state *ingestState, idx int, visiting map[int]struct{}) (obje record.objectID = id record.realType = ty record.resolved = true - state.objectToRecord[id.String()] = idx + state.objectToRecord[id] = idx state.baseCache.add(idx, ty, content) return ty, content, nil @@ -258,21 +259,21 @@ func hashCanonicalObject(algo objectid.Algorithm, ty objecttype.Type, content [] // unresolvedThinBaseIDs returns sorted unique unresolved ref base IDs. func unresolvedThinBaseIDs(state *ingestState) []objectid.ObjectID { - seen := make(map[string]objectid.ObjectID) + seen := make(map[objectid.ObjectID]struct{}) for _, idx := range state.unresolvedRefDeltas { record := state.records[idx] if record.packedType != objecttype.TypeRefDelta { continue } - seen[record.baseObject.String()] = record.baseObject + seen[record.baseObject] = struct{}{} } out := make([]objectid.ObjectID, 0, len(seen)) - for _, id := range seen { + for id := range seen { out = append(out, id) } slices.SortFunc(out, func(a, b objectid.ObjectID) int { - return slices.Compare(a.Bytes(), b.Bytes()) + return bytes.Compare(a.RawBytes(), b.RawBytes()) }) return out diff --git a/format/pack/ingest/state.go b/format/pack/ingest/state.go index 7033a6f6..3fabe639 100644 --- a/format/pack/ingest/state.go +++ b/format/pack/ingest/state.go @@ -35,7 +35,7 @@ type ingestState struct { refDeltas []refDeltaRef unresolvedRefDeltas []int offsetToRecord map[uint64]int - objectToRecord map[string]int + objectToRecord map[objectid.ObjectID]int baseCache *deltaBaseCache packHash objectid.ObjectID @@ -65,7 +65,7 @@ func newIngestState( writeRev: writeRev, base: base, offsetToRecord: make(map[uint64]int), - objectToRecord: make(map[string]int), + objectToRecord: make(map[objectid.ObjectID]int), baseCache: newDeltaBaseCache(defaultDeltaBaseCacheMaxBytes), }, nil } diff --git a/format/pack/ingest/stream_scan.go b/format/pack/ingest/stream_scan.go index 49290c0e..524467be 100644 --- a/format/pack/ingest/stream_scan.go +++ b/format/pack/ingest/stream_scan.go @@ -127,7 +127,7 @@ func scanOneEntry(state *ingestState, startOffset uint64) (uint64, error) { state.records = append(state.records, record) state.offsetToRecord[record.offset] = recordIdx if record.resolved { - state.objectToRecord[record.objectID.String()] = recordIdx + state.objectToRecord[record.objectID] = recordIdx } switch record.packedType { diff --git a/format/pack/ingest/thin_fix.go b/format/pack/ingest/thin_fix.go index e605c3f2..436d5c88 100644 --- a/format/pack/ingest/thin_fix.go +++ b/format/pack/ingest/thin_fix.go @@ -98,7 +98,7 @@ func appendBaseObject(state *ingestState, id objectid.ObjectID, realType objectt recordIdx := len(state.records) state.records = append(state.records, record) state.offsetToRecord[start] = recordIdx - state.objectToRecord[id.String()] = recordIdx + state.objectToRecord[id] = recordIdx state.baseCache.add(recordIdx, realType, content) return recordIdx, nil |
