1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-30 18:13:54 +08:00

merkledag: make Link.Node (the node cache) a private field

License: MIT
Signed-off-by: Mildred Ki'Lya <mildred-pub.git@mildred.fr>
This commit is contained in:
Mildred Ki'Lya
2016-02-24 08:34:32 +01:00
parent 67c59d871e
commit 28bc3ee8ee
3 changed files with 16 additions and 17 deletions

View File

@ -77,8 +77,8 @@ func (n *dagService) AddRecursive(nd *Node) error {
}
for _, link := range nd.Links {
if link.Node != nil {
err := n.AddRecursive(link.Node)
if link.node != nil {
err := n.AddRecursive(link.node)
if err != nil {
return err
}
@ -110,8 +110,8 @@ func (n *dagService) Get(ctx context.Context, k key.Key) (*Node, error) {
// Remove deletes the given node and all of its children from the BlockService
func (n *dagService) RemoveRecursive(nd *Node) error {
for _, l := range nd.Links {
if l.Node != nil {
n.RemoveRecursive(l.Node)
if l.node != nil {
n.RemoveRecursive(l.node)
}
}
k, err := nd.Key()

View File

@ -5,8 +5,8 @@ import (
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
mh "gx/ipfs/QmYf7ng2hG5XBtJA3tN34DQ2GUN5HNksEw1rLDkmr6vGku/go-multihash"
key "github.com/ipfs/go-ipfs/blocks/key"
mh "gx/ipfs/QmYf7ng2hG5XBtJA3tN34DQ2GUN5HNksEw1rLDkmr6vGku/go-multihash"
)
var ErrLinkNotFound = fmt.Errorf("no link by that name")
@ -50,7 +50,7 @@ type Link struct {
Hash mh.Multihash
// a ptr to the actual node for graph manipulation
Node *Node
node *Node
}
type LinkSlice []*Link
@ -78,13 +78,13 @@ func MakeLink(n *Node) (*Link, error) {
// GetCachedNode returns the MDAG Node that was cached, or nil
func (l *Link) GetCachedNode() *Node {
return l.Node
return l.node
}
// GetNode returns the MDAG Node that this link points to
func (l *Link) GetNode(ctx context.Context, serv DAGService) (*Node, error) {
if l.Node != nil {
return l.Node, nil
if l.node != nil {
return l.node, nil
}
return serv.Get(ctx, key.Key(l.Hash))
@ -94,15 +94,15 @@ func (l *Link) GetNode(ctx context.Context, serv DAGService) (*Node, error) {
// pointer to that node along with the link to speed up further retrivals. A
// timeout is to be specified to avoid taking too much time.
func (l *Link) GetNodeAndCache(ctx context.Context, serv DAGService) (*Node, error) {
if l.Node == nil {
if l.node == nil {
nd, err := serv.Get(ctx, key.Key(l.Hash))
if err != nil {
return nil, err
}
l.Node = nd
l.node = nd
}
return l.Node, nil
return l.node, nil
}
// AddNodeLink adds a link to another node.
@ -112,7 +112,7 @@ func (n *Node) AddNodeLink(name string, that *Node) error {
lnk, err := MakeLink(that)
lnk.Name = name
lnk.Node = that
lnk.node = that
if err != nil {
return err
}
@ -142,7 +142,7 @@ func (n *Node) AddRawLink(name string, l *Link) error {
Name: name,
Size: l.Size,
Hash: l.Hash,
Node: l.Node,
node: l.node,
})
return nil
@ -178,7 +178,7 @@ func (n *Node) GetNodeLink(name string) (*Link, error) {
Name: l.Name,
Size: l.Size,
Hash: l.Hash,
Node: l.Node,
node: l.node,
}, nil
}
}

View File

@ -11,10 +11,10 @@ import (
"sort"
"unsafe"
"gx/ipfs/QmZ4Qi3GaRbjcx28Sme5eMH7RQjGkt8wHxt2a65oLaeFEV/gogo-protobuf/proto"
"github.com/ipfs/go-ipfs/blocks/key"
"github.com/ipfs/go-ipfs/merkledag"
"github.com/ipfs/go-ipfs/pin/internal/pb"
"gx/ipfs/QmZ4Qi3GaRbjcx28Sme5eMH7RQjGkt8wHxt2a65oLaeFEV/gogo-protobuf/proto"
"gx/ipfs/QmZy2y8t9zQH2a1b8q2ZSLKp17ATuJoCNxxyMFG5qFExpt/go-net/context"
)
@ -172,7 +172,6 @@ func storeItems(ctx context.Context, dag merkledag.DAGService, estimatedLen uint
Name: "",
Hash: childKey.ToMultihash(),
Size: size,
Node: child,
}
n.Links[int(h%defaultFanout)] = l
}