@@ -32,23 +32,18 @@ internal suspend fun parseTrace(
32
32
workflowAdapter.fromJson(jsonString) ? : return ParseResult .Failure (
33
33
IllegalArgumentException (" Provided trace file is empty or malformed." )
34
34
)
35
- /*
36
- this parsing method can never be called without a provided file, so we can assume that there
37
- will always be at least one render pass in the trace. If not, then Moshi would catch any
38
- malformed JSON and throw an error beforehand.
39
- */
40
35
} catch (e: Exception ) {
41
36
return ParseResult .Failure (e)
42
37
}
43
38
44
- val parsedTrace = parsedRenderPasses.map { renderPass -> getFrameFromRenderPass(renderPass) }
39
+ val parsedFrames = parsedRenderPasses.map { renderPass -> getFrameFromRenderPass(renderPass) }
45
40
val frameTrees = mutableListOf<Node >()
46
- parsedTrace .fold(parsedTrace [0 ]) { tree, frame ->
41
+ parsedFrames .fold(parsedFrames [0 ]) { tree, frame ->
47
42
val mergedTree = mergeFrameIntoMainTree(frame, tree)
48
43
frameTrees.add(mergedTree)
49
44
mergedTree
50
45
}
51
- return ParseResult .Success (parsedTrace , frameTrees, parsedRenderPasses)
46
+ return ParseResult .Success (parsedFrames , frameTrees, parsedRenderPasses)
52
47
}
53
48
54
49
/* *
@@ -109,12 +104,12 @@ internal fun mergeFrameIntoMainTree(
109
104
throw IllegalArgumentException (" Frame root ID does not match main tree root ID." )
110
105
}
111
106
112
- return frame.children.fold(main) { mergedTree, child ->
113
- val parent = mergedTree.children.singleOrNull { it.id == child .id }
114
- if (parent != null ) {
115
- mergedTree.replaceChild(mergeFrameIntoMainTree(child, parent ))
107
+ return frame.children.fold(main) { mergedTree, frameChild ->
108
+ val mainTreeChild = mergedTree.children.singleOrNull { it.id == frameChild .id }
109
+ if (mainTreeChild != null ) {
110
+ mergedTree.replaceChild(mergeFrameIntoMainTree(frameChild, mainTreeChild ))
116
111
} else {
117
- mergedTree.addChild(child )
112
+ mergedTree.addChild(frameChild )
118
113
}
119
114
}
120
115
}
0 commit comments