| Index: chromeos/timezone/timezone_provider.cc
|
| diff --git a/chromeos/timezone/timezone_provider.cc b/chromeos/timezone/timezone_provider.cc
|
| index c9646c681bfafab199534f704a63b96b890eeffe..08e10e5359820e2b14efe859c3589f9cf00feac1 100644
|
| --- a/chromeos/timezone/timezone_provider.cc
|
| +++ b/chromeos/timezone/timezone_provider.cc
|
| @@ -47,10 +47,13 @@ void TimeZoneProvider::OnTimezoneResponse(
|
| TimeZoneRequest::TimeZoneResponseCallback callback,
|
| scoped_ptr<TimeZoneResponseData> timezone,
|
| bool server_error) {
|
| - ScopedVector<TimeZoneRequest>::iterator new_end =
|
| - std::remove(requests_.begin(), requests_.end(), request);
|
| - DCHECK_EQ(std::distance(new_end, requests_.end()), 1);
|
| - requests_.erase(new_end, requests_.end());
|
| + ScopedVector<TimeZoneRequest>::iterator position =
|
| + std::find(requests_.begin(), requests_.end(), request);
|
| + DCHECK(position != requests_.end());
|
| + if (position != requests_.end()) {
|
| + std::swap(*position, *requests_.rbegin());
|
| + requests_.resize(requests_.size() - 1);
|
| + }
|
|
|
| callback.Run(timezone.Pass(), server_error);
|
| }
|
|
|