func fillFailure(curr, root, parent *trie.TernaryNode) { data := getNodeData(curr) if data == nil { data = &Data{} curr.SetValue(data) } if parent == root { data.failure = root return } // Determine failure node. fnode := getNextNode(getNodeFailure(parent, root), root, curr.Label()) data.failure = fnode }