提交 0d35cc9a 作者: Jeromy

set data and links nil if not present

License: MIT
Signed-off-by: 's avatarJeromy <jeromyj@gmail.com>
上级 e90bd930
......@@ -50,7 +50,9 @@ func (n *Node) Marshal() ([]byte, error) {
func (n *Node) getPBNode() *pb.PBNode {
pbn := &pb.PBNode{}
pbn.Links = make([]*pb.PBLink, len(n.Links))
if len(n.Links) > 0 {
pbn.Links = make([]*pb.PBLink, len(n.Links))
}
sort.Stable(LinkSlice(n.Links)) // keep links sorted
for i, l := range n.Links {
......@@ -60,7 +62,9 @@ func (n *Node) getPBNode() *pb.PBNode {
pbn.Links[i].Hash = []byte(l.Hash)
}
pbn.Data = n.Data
if len(n.Data) > 0 {
pbn.Data = n.Data
}
return pbn
}
......
......@@ -176,11 +176,15 @@ func (n *Node) GetLinkedNode(ctx context.Context, ds DAGService, name string) (*
// NOTE: does not make copies of Node objects in the links.
func (n *Node) Copy() *Node {
nnode := new(Node)
nnode.Data = make([]byte, len(n.Data))
copy(nnode.Data, n.Data)
if len(n.Data) > 0 {
nnode.Data = make([]byte, len(n.Data))
copy(nnode.Data, n.Data)
}
nnode.Links = make([]*Link, len(n.Links))
copy(nnode.Links, n.Links)
if len(n.Links) > 0 {
nnode.Links = make([]*Link, len(n.Links))
copy(nnode.Links, n.Links)
}
return nnode
}
......
......@@ -85,8 +85,8 @@ func TestInsertNode(t *testing.T) {
t.Fatal(err)
}
if k.B58String() != "QmThorWojP6YzLJwDukxiYCoKQSwyrMCvdt4WZ6rPm221t" {
t.Fatal("output was different than expected")
if k.B58String() != "QmZ8yeT9uD6ouJPNAYt62XffYuXBT6b4mP4obRSE9cJrSt" {
t.Fatal("output was different than expected: ", k)
}
}
......
......@@ -234,6 +234,12 @@ test_object_cmd() {
test_patch_create_path $EMPTY a/b/b/b/b $FILE
test_expect_success "can create blank object" '
BLANK=$(ipfs object new)
'
test_patch_create_path $BLANK a $FILE
test_expect_success "create bad path fails" '
test_must_fail ipfs object patch --create $EMPTY add-link / $FILE
'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论