提交 b1ecb821 作者: Kevin Atkinson

coreapi/pin: Use CID's directly in maps instead of converting to strings.

License: MIT
Signed-off-by: 's avatarKevin Atkinson <k@kevina.org>
上级 af73c509
...@@ -116,7 +116,7 @@ func (n *badNode) Err() error { ...@@ -116,7 +116,7 @@ func (n *badNode) Err() error {
} }
func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, error) { func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, error) {
visited := make(map[string]*pinStatus) visited := make(map[cid.Cid]*pinStatus)
bs := api.node.Blocks.Blockstore() bs := api.node.Blocks.Blockstore()
DAG := merkledag.NewDAGService(bserv.New(bs, offline.Exchange(bs))) DAG := merkledag.NewDAGService(bserv.New(bs, offline.Exchange(bs)))
getLinks := merkledag.GetLinksWithDAG(DAG) getLinks := merkledag.GetLinksWithDAG(DAG)
...@@ -124,8 +124,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro ...@@ -124,8 +124,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
var checkPin func(root cid.Cid) *pinStatus var checkPin func(root cid.Cid) *pinStatus
checkPin = func(root cid.Cid) *pinStatus { checkPin = func(root cid.Cid) *pinStatus {
key := root.String() if status, ok := visited[root]; ok {
if status, ok := visited[key]; ok {
return status return status
} }
...@@ -133,7 +132,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro ...@@ -133,7 +132,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
if err != nil { if err != nil {
status := &pinStatus{ok: false, cid: root} status := &pinStatus{ok: false, cid: root}
status.badNodes = []coreiface.BadPinNode{&badNode{path: coreiface.IpldPath(root), err: err}} status.badNodes = []coreiface.BadPinNode{&badNode{path: coreiface.IpldPath(root), err: err}}
visited[key] = status visited[root] = status
return status return status
} }
...@@ -146,7 +145,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro ...@@ -146,7 +145,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
} }
} }
visited[key] = status visited[root] = status
return status return status
} }
...@@ -176,11 +175,11 @@ func (p *pinInfo) Type() string { ...@@ -176,11 +175,11 @@ func (p *pinInfo) Type() string {
func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pin, error) { func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pin, error) {
keys := make(map[string]*pinInfo) keys := make(map[cid.Cid]*pinInfo)
AddToResultKeys := func(keyList []cid.Cid, typeStr string) { AddToResultKeys := func(keyList []cid.Cid, typeStr string) {
for _, c := range keyList { for _, c := range keyList {
keys[c.String()] = &pinInfo{ keys[c] = &pinInfo{
pinType: typeStr, pinType: typeStr,
path: coreiface.IpldPath(c), path: coreiface.IpldPath(c),
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论