Skip to content

Commit e539024

Browse files
committed
some code cleanup
1 parent 298305e commit e539024

File tree

1 file changed

+41
-36
lines changed

1 file changed

+41
-36
lines changed

importer/trickle/trickledag.go

+41-36
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
6868
}
6969

7070
// Get depth of this 'tree'
71-
n, j := trickleDepthInfo(ufsn, db.Maxlinks())
71+
n, layerProgress := trickleDepthInfo(ufsn, db.Maxlinks())
7272
if n == 0 {
7373
// If direct blocks not filled...
7474
err := db.FillNodeLayer(ufsn)
@@ -84,7 +84,8 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
8484
n++
8585
}
8686

87-
err = appendFillLastChild(ufsn, n-1, j, db)
87+
// Last child in this node may not be a full tree, lets file it up
88+
err = appendFillLastChild(ufsn, n-1, layerProgress, db)
8889
if err != nil {
8990
return nil, err
9091
}
@@ -113,55 +114,59 @@ func TrickleAppend(base *dag.Node, db *h.DagBuilderHelper) (*dag.Node, error) {
113114
return ufsn.GetDagNode()
114115
}
115116

117+
// appendFillLastChild will take in an incomplete trickledag node (uncomplete meaning, not full) and
118+
// fill it out to the specified depth with blocks from the given DagBuilderHelper
116119
func appendFillLastChild(ufsn *h.UnixfsNode, depth int, layerFill int, db *h.DagBuilderHelper) error {
117-
if ufsn.NumChildren() > db.Maxlinks() {
118-
// Recursive step, grab last child
119-
last := ufsn.NumChildren() - 1
120-
lastChild, err := ufsn.GetChild(last, db.GetDagServ())
121-
if err != nil {
122-
return err
123-
}
120+
if ufsn.NumChildren() <= db.Maxlinks() {
121+
return nil
122+
}
123+
// Recursive step, grab last child
124+
last := ufsn.NumChildren() - 1
125+
lastChild, err := ufsn.GetChild(last, db.GetDagServ())
126+
if err != nil {
127+
return err
128+
}
124129

125-
// Fill out last child (may not be full tree)
126-
nchild, err := trickleAppendRec(lastChild, db, depth-1)
127-
if err != nil {
128-
return err
129-
}
130+
// Fill out last child (may not be full tree)
131+
nchild, err := trickleAppendRec(lastChild, db, depth-1)
132+
if err != nil {
133+
return err
134+
}
130135

131-
// Update changed child in parent node
132-
ufsn.RemoveChild(last)
133-
err = ufsn.AddChild(nchild, db)
134-
if err != nil {
135-
return err
136-
}
136+
// Update changed child in parent node
137+
ufsn.RemoveChild(last)
138+
err = ufsn.AddChild(nchild, db)
139+
if err != nil {
140+
return err
141+
}
142+
143+
// Partially filled depth layer
144+
if layerFill != 0 {
145+
for ; layerFill < layerRepeat && !db.Done(); layerFill++ {
146+
next := h.NewUnixfsNode()
147+
err := fillTrickleRec(db, next, depth)
148+
if err != nil {
149+
return err
150+
}
137151

138-
// Partially filled depth layer
139-
if layerFill != 0 {
140-
for ; layerFill < layerRepeat && !db.Done(); layerFill++ {
141-
next := h.NewUnixfsNode()
142-
err := fillTrickleRec(db, next, depth)
143-
if err != nil {
144-
return err
145-
}
146-
147-
err = ufsn.AddChild(next, db)
148-
if err != nil {
149-
return err
150-
}
152+
err = ufsn.AddChild(next, db)
153+
if err != nil {
154+
return err
151155
}
152156
}
153157
}
154158

155159
return nil
156160
}
157161

162+
// recursive call for TrickleAppend
158163
func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h.UnixfsNode, error) {
159164
if depth == 0 || db.Done() {
160165
return ufsn, nil
161166
}
162167

163168
// Get depth of this 'tree'
164-
n, j := trickleDepthInfo(ufsn, db.Maxlinks())
169+
n, layerProgress := trickleDepthInfo(ufsn, db.Maxlinks())
165170
if n == 0 {
166171
// If direct blocks not filled...
167172
err := db.FillNodeLayer(ufsn)
@@ -176,7 +181,7 @@ func trickleAppendRec(ufsn *h.UnixfsNode, db *h.DagBuilderHelper, depth int) (*h
176181
return ufsn, nil
177182
}
178183

179-
err := appendFillLastChild(ufsn, n, j, db)
184+
err := appendFillLastChild(ufsn, n, layerProgress, db)
180185
if err != nil {
181186
return nil, err
182187
}
@@ -242,7 +247,7 @@ func verifyTDagRec(nd *dag.Node, depth, direct, layerRepeat int, ds dag.DAGServi
242247
for i := 0; i < len(nd.Links); i++ {
243248
child, err := nd.Links[i].GetNode(ds)
244249
if err != nil {
245-
return nil
250+
return err
246251
}
247252

248253
if i < direct {

0 commit comments

Comments
 (0)