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