@cryptotaxi247 / kubo / commits / b1ecb8217

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

License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>

Kevin Atkinson committed Nov 29, 2018 at 17:13 UTC b1ecb82172b311fe9d042339a2aebab3633c9d74
1 file changed +6 -7
core/coreapi/pin.go
+6 -7
@@ -116,7 +116,7 @@ func (n *badNode) Err() error {
116 }
117
118 func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, error) {
119 - visited := make(map[string]*pinStatus)
119 + visited := make(map[cid.Cid]*pinStatus)
120 bs := api.node.Blocks.Blockstore()
121 DAG := merkledag.NewDAGService(bserv.New(bs, offline.Exchange(bs)))
122 getLinks := merkledag.GetLinksWithDAG(DAG)
@@ -124,8 +124,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
124
125 var checkPin func(root cid.Cid) *pinStatus
126 checkPin = func(root cid.Cid) *pinStatus {
127 - key := root.String()
128 - if status, ok := visited[key]; ok {
127 + if status, ok := visited[root]; ok {
128 return status
129 }
130
@@ -133,7 +132,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
132 if err != nil {
133 status := &pinStatus{ok: false, cid: root}
134 status.badNodes = []coreiface.BadPinNode{&badNode{path: coreiface.IpldPath(root), err: err}}
136 - visited[key] = status
135 + visited[root] = status
136 return status
137 }
138
@@ -146,7 +145,7 @@ func (api *PinAPI) Verify(ctx context.Context) (<-chan coreiface.PinStatus, erro
145 }
146 }
147
149 - visited[key] = status
148 + visited[root] = status
149 return status
150 }
151
@@ -176,11 +175,11 @@ func (p *pinInfo) Type() string {
175
176 func (api *PinAPI) pinLsAll(typeStr string, ctx context.Context) ([]coreiface.Pin, error) {
177
179 - keys := make(map[string]*pinInfo)
178 + keys := make(map[cid.Cid]*pinInfo)
179
180 AddToResultKeys := func(keyList []cid.Cid, typeStr string) {
181 for _, c := range keyList {
183 - keys[c.String()] = &pinInfo{
182 + keys[c] = &pinInfo{
183 pinType: typeStr,
184 path: coreiface.IpldPath(c),
185 }