merkledag: keep key order in dedupeKeys
License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
Łukasz Magiera committed
Oct 18, 2017 at 22:26 UTC
913f9641e4518ffa2609e09429254019385222af
2 files changed
+6
-3
core/corehttp/gateway_handler.go
+1
-1
@@ -373,7 +373,7 @@ func (i *gatewayHandler) getOrHeadHandler(ctx context.Context, w http.ResponseWr
373
}
374
375
type sizeReadSeeker interface {
376
- Size() uint64
376
+ Size() uint64
377
378
io.ReadSeeker
379
}
merkledag/merkledag.go
+5
-2
@@ -307,11 +307,14 @@ func GetNodes(ctx context.Context, ds DAGService, keys []*cid.Cid) []NodeGetter
307
308
// Remove duplicates from a list of keys
309
func dedupeKeys(cids []*cid.Cid) []*cid.Cid {
310
+ out := make([]*cid.Cid, 0, len(cids))
311
set := cid.NewSet()
312
for _, c := range cids {
312
- set.Add(c)
313
+ if set.Visit(c) {
314
+ out = append(out, c)
315
+ }
316
}
314
- return set.Keys()
317
+ return out
318
}
319
320
func newNodePromise(ctx context.Context) NodeGetter {