merkeldag: change SetPrefix param to a pointer and reset the prefix on nil
License: MIT Signed-off-by: Kevin Atkinson <k@kevina.org>
Kevin Atkinson committed
Mar 24, 2017 at 16:41 UTC
076d0bd9b1a0102ea889e3381a20287009825777
8 files changed
+22
-14
core/commands/add.go
+1
-1
@@ -236,7 +236,7 @@ You can now refer to the added file in a gateway, like so:
236
fileAdder.Silent = silent
237
fileAdder.RawLeaves = rawblks
238
fileAdder.NoCopy = nocopy
239
- fileAdder.Prefix = prefix
239
+ fileAdder.Prefix = &prefix
240
241
if hash {
242
md := dagtest.Mock()
core/coreunix/add.go
+2
-1
@@ -103,7 +103,7 @@ type Adder struct {
103
mroot *mfs.Root
104
unlocker bs.Unlocker
105
tempRoot *cid.Cid
106
- Prefix cid.Prefix
106
+ Prefix *cid.Prefix
107
}
108
109
func (adder *Adder) mfsRoot() (*mfs.Root, error) {
@@ -113,6 +113,7 @@ func (adder *Adder) mfsRoot() (*mfs.Root, error) {
113
rnode := unixfs.EmptyDirNode()
114
rnode.SetPrefix(adder.Prefix)
115
mr, err := mfs.NewRoot(adder.ctx, adder.dagService, rnode, nil)
116
+ mr.Prefix = adder.Prefix
117
if err != nil {
118
return nil, err
119
}
importer/helpers/dagbuilder.go
+3
-3
@@ -25,7 +25,7 @@ type DagBuilderHelper struct {
25
batch *dag.Batch
26
fullPath string
27
stat os.FileInfo
28
- prefix cid.Prefix
28
+ prefix *cid.Prefix
29
}
30
31
type DagBuilderParams struct {
@@ -36,8 +36,8 @@ type DagBuilderParams struct {
36
// instead of using the unixfs TRaw type
37
RawLeaves bool
38
39
- // CID Prefix to use
40
- Prefix cid.Prefix
39
+ // CID Prefix to use if set
40
+ Prefix *cid.Prefix
41
42
// DAGService to write blocks to (required)
43
Dagserv dag.DAGService
importer/helpers/helpers.go
+1
-1
@@ -62,7 +62,7 @@ func NewUnixfsNodeFromDag(nd *dag.ProtoNode) (*UnixfsNode, error) {
62
}, nil
63
}
64
65
-func (n *UnixfsNode) SetPrefix(prefix cid.Prefix) {
65
+func (n *UnixfsNode) SetPrefix(prefix *cid.Prefix) {
66
n.node.SetPrefix(prefix)
67
}
68
merkledag/node.go
+12
-5
@@ -53,10 +53,17 @@ func PrefixForCidVersion(version int) (cid.Prefix, error) {
53
}
54
}
55
56
-func (n *ProtoNode) SetPrefix(prefix cid.Prefix) {
57
- n.Prefix = prefix
58
- n.encoded = nil
59
- n.cached = nil
56
+// SetPrefix sets the prefix if it is non nil, if prefix is nil then
57
+// it resets it the default value
58
+func (n *ProtoNode) SetPrefix(prefix *cid.Prefix) {
59
+ if prefix == nil {
60
+ n.Prefix = v0CidPrefix
61
+ } else {
62
+ n.Prefix = *prefix
63
+ n.Prefix.Codec = cid.DagProtobuf
64
+ n.encoded = nil
65
+ n.cached = nil
66
+ }
67
}
68
69
type LinkSlice []*node.Link
@@ -287,7 +294,7 @@ func (n *ProtoNode) Cid() *cid.Cid {
294
}
295
296
if n.Prefix.Codec == 0 {
290
- n.Prefix = v0CidPrefix
297
+ n.SetPrefix(nil)
298
}
299
300
c, err := n.Prefix.Sum(n.RawData())
mfs/dir.go
+1
-1
@@ -58,7 +58,7 @@ func NewDirectory(ctx context.Context, name string, node node.Node, parent child
58
}, nil
59
}
60
61
-func (d *Directory) SetPrefix(prefix cid.Prefix) {
61
+func (d *Directory) SetPrefix(prefix *cid.Prefix) {
62
d.dirbuilder.SetPrefix(prefix)
63
}
64
mfs/system.go
+1
-1
@@ -63,7 +63,7 @@ type Root struct {
63
Type string
64
65
// Prefix to use for any children created
66
- Prefix cid.Prefix
66
+ Prefix *cid.Prefix
67
}
68
69
type PubFunc func(context.Context, *cid.Cid) error
unixfs/io/dirbuilder.go
+1
-1
@@ -81,7 +81,7 @@ func NewDirectoryFromNode(dserv mdag.DAGService, nd node.Node) (*Directory, erro
81
}
82
83
// SetPrefix sets the prefix of the root node
84
-func (d *Directory) SetPrefix(prefix cid.Prefix) {
84
+func (d *Directory) SetPrefix(prefix *cid.Prefix) {
85
if d.dirnode != nil {
86
d.dirnode.SetPrefix(prefix)
87
}