From e36dd56bebb7d364d9e2596458ff332d0a9a3411 Mon Sep 17 00:00:00 2001 From: Shinichiro Hamaji Date: Sat, 27 Jun 2015 16:34:48 +0900 Subject: [C++] Reduce memory usage of DepBuilder --- dep.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'dep.cc') diff --git a/dep.cc b/dep.cc index 25a13da..643a103 100644 --- a/dep.cc +++ b/dep.cc @@ -183,6 +183,10 @@ class DepBuilder { void PopulateExplicitRule(shared_ptr rule) { for (StringPiece output : rule->outputs) { const bool is_suffix_rule = PopulateSuffixRule(rule, output); + + rule = make_shared(*rule); + rule->outputs.clear(); + rule->outputs.push_back(output); auto p = rules_.insert(make_pair(output, rule)); if (p.second) { if (!first_rule_ && output.get(0) != '.') { -- cgit v1.2.3