return s
}
-func hexStringPieceHashArray(s string) (ret [20]byte) {
+// Turns 40 byte hex string into its equivalent binary byte array.
+func hexStringPieceHashArray(s string) (ret [20]byte, ok bool) {
if len(s) != 40 {
- panic(s)
+ return
}
n, err := hex.Decode(ret[:], []byte(s))
if err != nil {
- panic(err)
+ return
}
if n != 20 {
panic(n)
}
+ ok = true
return
}
}
me.completed = make(map[[20]byte]struct{}, len(fis))
for _, fi := range fis {
- if len(fi.Name()) != 40 {
+ binHash, ok := hexStringPieceHashArray(fi.Name())
+ if !ok {
continue
}
- me.completed[hexStringPieceHashArray(fi.Name())] = struct{}{}
+ me.completed[binHash] = struct{}{}
}
}
if err != nil {
return err
}
- delete(me.completed, hexStringPieceHashArray(name))
+ binHash, ok := hexStringPieceHashArray(name)
+ if ok {
+ delete(me.completed, binHash)
+ }
return
}