2845
// An empty node may be created when child update is applied before the parent,
2846
// in which case node.serializedNode will be nil.
2847
>
if node.serializedNode == nil || transitionhistory.Compare(
tree.go
2848
>
node.serializedNode.Metadata.LastUpdateVersionedTransition,
2849
>
updatedNode.Metadata.LastUpdateVersionedTransition,
2850
>
) != 0 {
2851
>
localComponentAttr := node.serializedNode.GetMetadata().GetComponentAttributes()
2852
>
updatedComponentAttr := updatedNode.GetMetadata().GetComponentAttributes()
2853
>
if localComponentAttr != nil && updatedComponentAttr != nil {
2854
>
n.carryOverTaskStatus(
2855
>
localComponentAttr.SideEffectTasks,
2856
>
updatedComponentAttr.SideEffectTasks,
2857
>
compareSideEffectTasks,
2858
>
)
2859
>
n.carryOverTaskStatus(
2860
>
localComponentAttr.PureTasks,
2861
>
updatedComponentAttr.PureTasks,
2862
>
comparePureTasks,
2863
>
)
2864
>
}
2865
2866
>
if isSystemUpdates {
tree.go
2867
n.systemMutation.UpdatedNodes[encodedPath] = updatedNode
2868
delete(n.systemMutation.DeletedNodes, encodedPath)
2870
>
n.mutation.UpdatedNodes[encodedPath] = updatedNode
2871
>
delete(n.mutation.DeletedNodes, encodedPath)
2872
>
}
2873
>
node.setValue(nil)
2874
>
node.setValueState(valueStateNeedDeserialize)
2875
>
node.serializedNode = updatedNode
2876
>
n.clearAncestorNodeValues(node.parent)
2877
}
2878
}