Remove stl_util's deletion functions from chromeos/.
BUG=555865
Review-Url: https://codereview.chromium.org/2387783002
Cr-Commit-Position: refs/heads/master@{#422979}
diff --git a/chromeos/settings/timezone_settings.cc b/chromeos/settings/timezone_settings.cc
index 7dbe669..0f42e86 100644
--- a/chromeos/settings/timezone_settings.cc
+++ b/chromeos/settings/timezone_settings.cc
@@ -15,9 +15,9 @@
#include "base/location.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/memory/singleton.h"
#include "base/observer_list.h"
-#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/sys_info.h"
@@ -279,7 +279,8 @@
void SetTimezoneFromID(const base::string16& timezone_id) override;
void AddObserver(Observer* observer) override;
void RemoveObserver(Observer* observer) override;
- const std::vector<icu::TimeZone*>& GetTimezoneList() const override;
+ const std::vector<std::unique_ptr<icu::TimeZone>>& GetTimezoneList()
+ const override;
protected:
TimezoneSettingsBaseImpl();
@@ -295,7 +296,7 @@
const icu::TimeZone& timezone) const;
base::ObserverList<Observer> observers_;
- std::vector<icu::TimeZone*> timezones_;
+ std::vector<std::unique_ptr<icu::TimeZone>> timezones_;
std::unique_ptr<icu::TimeZone> timezone_;
private:
@@ -335,7 +336,6 @@
};
TimezoneSettingsBaseImpl::~TimezoneSettingsBaseImpl() {
- base::STLDeleteElements(&timezones_);
}
const icu::TimeZone& TimezoneSettingsBaseImpl::GetTimezone() {
@@ -361,15 +361,15 @@
observers_.RemoveObserver(observer);
}
-const std::vector<icu::TimeZone*>&
+const std::vector<std::unique_ptr<icu::TimeZone>>&
TimezoneSettingsBaseImpl::GetTimezoneList() const {
return timezones_;
}
TimezoneSettingsBaseImpl::TimezoneSettingsBaseImpl() {
for (size_t i = 0; i < arraysize(kTimeZones); ++i) {
- timezones_.push_back(icu::TimeZone::createTimeZone(
- icu::UnicodeString(kTimeZones[i], -1, US_INV)));
+ timezones_.push_back(base::WrapUnique(icu::TimeZone::createTimeZone(
+ icu::UnicodeString(kTimeZones[i], -1, US_INV))));
}
}
diff --git a/chromeos/settings/timezone_settings.h b/chromeos/settings/timezone_settings.h
index 7ab0084..b504cc6 100644
--- a/chromeos/settings/timezone_settings.h
+++ b/chromeos/settings/timezone_settings.h
@@ -42,7 +42,8 @@
virtual void AddObserver(Observer* observer) = 0;
virtual void RemoveObserver(Observer* observer) = 0;
- virtual const std::vector<icu::TimeZone*>& GetTimezoneList() const = 0;
+ virtual const std::vector<std::unique_ptr<icu::TimeZone>>& GetTimezoneList()
+ const = 0;
// Gets timezone ID which is also used as timezone pref value.
static base::string16 GetTimezoneID(const icu::TimeZone& timezone);
diff --git a/chromeos/settings/timezone_settings_helper.cc b/chromeos/settings/timezone_settings_helper.cc
index 781f774..7390e5d 100644
--- a/chromeos/settings/timezone_settings_helper.cc
+++ b/chromeos/settings/timezone_settings_helper.cc
@@ -12,16 +12,16 @@
CHROMEOS_EXPORT const icu::TimeZone* GetKnownTimezoneOrNull(
const icu::TimeZone& timezone,
- const std::vector<icu::TimeZone*>& timezone_list) {
- const icu::TimeZone* known_timezone = NULL;
+ const std::vector<std::unique_ptr<icu::TimeZone>>& timezone_list) {
+ const icu::TimeZone* known_timezone = nullptr;
icu::UnicodeString id, canonical_id;
timezone.getID(id);
UErrorCode status = U_ZERO_ERROR;
icu::TimeZone::getCanonicalID(id, canonical_id, status);
DCHECK(U_SUCCESS(status));
- for (const auto* entry : timezone_list) {
- if (*entry == timezone)
- return entry;
+ for (const auto& entry : timezone_list) {
+ if (*entry.get() == timezone)
+ return entry.get();
// Compare the canonical IDs as well.
// For instance, Asia/Ulan_Bator -> Asia/Ulaanbaatar or
// Canada/Pacific -> America/Vancouver
@@ -30,14 +30,14 @@
icu::TimeZone::getCanonicalID(entry_id, entry_canonical_id, status);
DCHECK(U_SUCCESS(status));
if (entry_canonical_id == canonical_id)
- return entry;
+ return entry.get();
// Last resort: If no match is found, the last timezone in the list
// with matching rules will be returned.
if (entry->hasSameRules(timezone))
- known_timezone = entry;
+ known_timezone = entry.get();
}
- // May return NULL if we did not find a matching timezone in our list.
+ // May return null if we did not find a matching timezone in our list.
return known_timezone;
}
diff --git a/chromeos/settings/timezone_settings_helper.h b/chromeos/settings/timezone_settings_helper.h
index c8ed8ee..a368ad7 100644
--- a/chromeos/settings/timezone_settings_helper.h
+++ b/chromeos/settings/timezone_settings_helper.h
@@ -5,6 +5,7 @@
#ifndef CHROMEOS_SETTINGS_TIMEZONE_SETTINGS_HELPER_H_
#define CHROMEOS_SETTINGS_TIMEZONE_SETTINGS_HELPER_H_
+#include <memory>
#include <vector>
#include "third_party/icu/source/i18n/unicode/timezone.h"
@@ -17,7 +18,7 @@
// the same rules. Otherwise, return null.
const icu::TimeZone* GetKnownTimezoneOrNull(
const icu::TimeZone& timezone,
- const std::vector<icu::TimeZone*>& timezone_list);
+ const std::vector<std::unique_ptr<icu::TimeZone>>& timezone_list);
} // namespace system
} // namespace chromeos
diff --git a/chromeos/settings/timezone_settings_unittest.cc b/chromeos/settings/timezone_settings_unittest.cc
index 3c9e129a..2e23ae1 100644
--- a/chromeos/settings/timezone_settings_unittest.cc
+++ b/chromeos/settings/timezone_settings_unittest.cc
@@ -4,7 +4,7 @@
#include <memory>
-#include "base/stl_util.h"
+#include "base/memory/ptr_util.h"
#include "chromeos/settings/timezone_settings_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/icu/source/common/unicode/unistr.h"
@@ -36,14 +36,13 @@
void SetUp() override {
for (const char* id : kTimeZones) {
- timezones_.push_back(TimeZone::createTimeZone(UnicodeString(id)));
+ timezones_.push_back(
+ base::WrapUnique(TimeZone::createTimeZone(UnicodeString(id))));
}
}
- void TearDown() override { base::STLDeleteElements(&timezones_); }
-
protected:
- std::vector<TimeZone*> timezones_;
+ std::vector<std::unique_ptr<TimeZone>> timezones_;
};
TEST_F(KnownTimeZoneTest, IdMatch) {