blob: 72f193657de47923739df1614fc525eeae342703 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "key_gen.h"
#include "node_visitor.h"
#include "node_traverser.h"
namespace vespalib::eval {
namespace {
struct ChildReaper : public NodeTraverser, public NodeHandler {
void handle(nodes::Node_UP) override {}
bool open(const nodes::Node &) override { return true; }
void close(const nodes::Node &node) override {
nodes::Node &mutable_node = const_cast<nodes::Node&>(node);
mutable_node.detach_children(*this);
}
};
} // namespace vespalib::nodes::<unnamed>
void
delete_node(nodes::Node_UP node)
{
if (node) {
ChildReaper reaper;
node->traverse(reaper);
}
}
}
|