@cryptotaxi247 / kubo / commits / e06436d09

don't resolve children unnecessarily when listing a sharded directory

We only need to get the child if it's a shard. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Mar 27, 2018 at 15:01 UTC e06436d0904d3feb95e0e87730c6dd073425d79c
1 file changed +5 -5
unixfs/hamt/hamt.go
+5 -5
@@ -289,13 +289,13 @@ func (ds *Shard) loadChild(ctx context.Context, i int) (child, error) {
289 return nil, fmt.Errorf("invalid link name '%s'", lnk.Name)
290 }
291
292 - nd, err := lnk.GetNode(ctx, ds.dserv)
293 - if err != nil {
294 - return nil, err
295 - }
296 -
292 var c child
293 if len(lnk.Name) == ds.maxpadlen {
294 + nd, err := lnk.GetNode(ctx, ds.dserv)
295 + if err != nil {
296 + return nil, err
297 + }
298 +
299 pbnd, ok := nd.(*dag.ProtoNode)
300 if !ok {
301 return nil, dag.ErrNotProtobuf