@@ -428,7 +428,10 @@ func bucketRefPrefix(ref []byte) []byte {
428428 ref = ref [len (libPrefix ):]
429429 }
430430
431- prefixLen := min (maxPrefixLen , len (ref ))
431+ prefixLen := len (ref )
432+ if maxPrefixLen < prefixLen {
433+ prefixLen = maxPrefixLen
434+ }
432435 prefix , _ , _ := bytes .Cut (ref [:prefixLen ], []byte {' ' })
433436 return prefix
434437}
@@ -715,9 +718,16 @@ func (set *RefListDigestSet) ForEach(handler func(digest []byte) error) error {
715718 return nil
716719}
717720
721+ // workaround for: conversion of slices to arrays requires go1.20 or later
722+ func NewRefListArray (digest []byte ) reflistDigestArray {
723+ var array reflistDigestArray
724+ copy (array [:], digest )
725+ return array
726+ }
727+
718728// Add adds digest to set, doing nothing if the digest was already present
719729func (set * RefListDigestSet ) Add (digest []byte ) {
720- set .items [reflistDigestArray (digest )] = struct {}{}
730+ set .items [NewRefListArray (digest )] = struct {}{}
721731}
722732
723733// AddAllInRefList adds all the bucket digests in a SplitRefList to the set
@@ -731,13 +741,13 @@ func (set *RefListDigestSet) AddAllInRefList(sl *SplitRefList) {
731741
732742// Has checks whether a digest is part of set
733743func (set * RefListDigestSet ) Has (digest []byte ) bool {
734- _ , ok := set .items [reflistDigestArray (digest )]
744+ _ , ok := set .items [NewRefListArray (digest )]
735745 return ok
736746}
737747
738748// Remove removes a digest from set
739749func (set * RefListDigestSet ) Remove (digest []byte ) {
740- delete (set .items , reflistDigestArray (digest ))
750+ delete (set .items ,NewRefListArray (digest ))
741751}
742752
743753// RemoveAll removes all the digests in other from the current set
@@ -861,7 +871,7 @@ func (collection *RefListCollection) loadBuckets(sl *SplitRefList) error {
861871 var bucket * PackageRefList
862872
863873 if digest := sl .Buckets [idx ]; len (digest ) > 0 {
864- cacheKey := reflistDigestArray (digest )
874+ cacheKey := NewRefListArray (digest )
865875 bucket = collection .cache [cacheKey ]
866876 if bucket == nil {
867877 bucket = NewPackageRefList ()
0 commit comments