Remove ScopedVector from tools/gn/.

BUG=554289

Review-Url: https://codereview.chromium.org/2972113002
Cr-Original-Commit-Position: refs/heads/master@{#484744}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f6016b060cb2133958b6903a527f637adddf31b4
diff --git a/tools/gn/function_get_target_outputs.cc b/tools/gn/function_get_target_outputs.cc
index bec825f..e13e1e3 100644
--- a/tools/gn/function_get_target_outputs.cc
+++ b/tools/gn/function_get_target_outputs.cc
@@ -93,7 +93,7 @@
     *err = Err(function, "No targets defined in this context.");
     return Value();
   }
-  for (auto* item : *collector) {
+  for (const auto& item : *collector) {
     if (item->label() != label)
       continue;
 
diff --git a/tools/gn/function_get_target_outputs_unittest.cc b/tools/gn/function_get_target_outputs_unittest.cc
index 3bff238..2f746a7 100644
--- a/tools/gn/function_get_target_outputs_unittest.cc
+++ b/tools/gn/function_get_target_outputs_unittest.cc
@@ -2,6 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <utility>
+
+#include "base/memory/ptr_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "tools/gn/functions.h"
 #include "tools/gn/target.h"
@@ -57,13 +60,14 @@
 }  // namespace
 
 TEST_F(GetTargetOutputsTest, Copy) {
-  Target* action = new Target(setup_.settings(), GetLabel("//foo/", "bar"), {});
+  auto action = base::MakeUnique<Target>(
+      setup_.settings(), GetLabel("//foo/", "bar"), InputFileSet{});
   action->set_output_type(Target::COPY_FILES);
   action->sources().push_back(SourceFile("//file.txt"));
   action->action_values().outputs() =
       SubstitutionList::MakeForTest("//out/Debug/{{source_file_part}}.one");
 
-  items_.push_back(action);
+  items_.push_back(std::move(action));
 
   Err err;
   Value result = GetTargetOutputs("//foo:bar", &err);
@@ -72,13 +76,14 @@
 }
 
 TEST_F(GetTargetOutputsTest, Action) {
-  Target* action = new Target(setup_.settings(), GetLabel("//foo/", "bar"), {});
+  auto action = base::MakeUnique<Target>(
+      setup_.settings(), GetLabel("//foo/", "bar"), InputFileSet{});
   action->set_output_type(Target::ACTION);
   action->action_values().outputs() = SubstitutionList::MakeForTest(
       "//output1.txt",
       "//output2.txt");
 
-  items_.push_back(action);
+  items_.push_back(std::move(action));
 
   Err err;
   Value result = GetTargetOutputs("//foo:bar", &err);
@@ -87,14 +92,15 @@
 }
 
 TEST_F(GetTargetOutputsTest, ActionForeach) {
-  Target* action = new Target(setup_.settings(), GetLabel("//foo/", "bar"), {});
+  auto action = base::MakeUnique<Target>(
+      setup_.settings(), GetLabel("//foo/", "bar"), InputFileSet{});
   action->set_output_type(Target::ACTION_FOREACH);
   action->sources().push_back(SourceFile("//file.txt"));
   action->action_values().outputs() = SubstitutionList::MakeForTest(
       "//out/Debug/{{source_file_part}}.one",
       "//out/Debug/{{source_file_part}}.two");
 
-  items_.push_back(action);
+  items_.push_back(std::move(action));
 
   Err err;
   Value result = GetTargetOutputs("//foo:bar", &err);
diff --git a/tools/gn/function_toolchain.cc b/tools/gn/function_toolchain.cc
index adbab30..beef1ea 100644
--- a/tools/gn/function_toolchain.cc
+++ b/tools/gn/function_toolchain.cc
@@ -496,7 +496,7 @@
     *err = Err(function, "Can't define a toolchain in this context.");
     return Value();
   }
-  collector->push_back(toolchain.release());
+  collector->push_back(std::move(toolchain));
   return Value();
 }
 
diff --git a/tools/gn/functions.cc b/tools/gn/functions.cc
index 41022e6..09e3647 100644
--- a/tools/gn/functions.cc
+++ b/tools/gn/functions.cc
@@ -366,7 +366,7 @@
     *err = Err(function, "Can't define a config in this context.");
     return Value();
   }
-  collector->push_back(config.release());
+  collector->push_back(std::move(config));
 
   return Value();
 }
@@ -919,7 +919,7 @@
     *err = Err(function, "Can't define a pool in this context.");
     return Value();
   }
-  collector->push_back(pool.release());
+  collector->push_back(std::move(pool));
 
   return Value();
 }
diff --git a/tools/gn/loader.cc b/tools/gn/loader.cc
index 417a891..a07ee5a 100644
--- a/tools/gn/loader.cc
+++ b/tools/gn/loader.cc
@@ -278,10 +278,8 @@
 
 
   // Pass all of the items that were defined off to the builder.
-  for (auto*& item : collected_items) {
-    settings->build_settings()->ItemDefined(base::WrapUnique(item));
-    item = nullptr;
-  }
+  for (auto& item : collected_items)
+    settings->build_settings()->ItemDefined(std::move(item));
 
   trace.Done();
 
diff --git a/tools/gn/scope.h b/tools/gn/scope.h
index 2adcabd..20a64bc 100644
--- a/tools/gn/scope.h
+++ b/tools/gn/scope.h
@@ -9,11 +9,11 @@
 #include <memory>
 #include <set>
 #include <utility>
+#include <vector>
 
 #include "base/containers/hash_tables.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "base/memory/scoped_vector.h"
 #include "tools/gn/err.h"
 #include "tools/gn/input_file.h"
 #include "tools/gn/pattern.h"
@@ -41,7 +41,7 @@
   typedef base::hash_map<base::StringPiece, Value, base::StringPieceHash>
       KeyValueMap;
   // Holds an owning list of Items.
-  typedef ScopedVector<Item> ItemVector;
+  typedef std::vector<std::unique_ptr<Item>> ItemVector;
 
   // A flag to indicate whether a function should recurse into nested scopes,
   // or only operate on the current scope.
diff --git a/tools/gn/target_generator.cc b/tools/gn/target_generator.cc
index 947cf9f..e8d064d 100644
--- a/tools/gn/target_generator.cc
+++ b/tools/gn/target_generator.cc
@@ -6,6 +6,8 @@
 
 #include <stddef.h>
 
+#include <utility>
+
 #include "tools/gn/action_target_generator.h"
 #include "tools/gn/binary_target_generator.h"
 #include "tools/gn/build_settings.h"
@@ -149,7 +151,7 @@
     *err = Err(function_call, "Can't define a target in this context.");
     return;
   }
-  collector->push_back(target.release());
+  collector->push_back(std::move(target));
 }
 
 const BuildSettings* TargetGenerator::GetBuildSettings() const {