Index: device/gamepad/gamepad_data_fetcher_manager.cc |
diff --git a/device/gamepad/gamepad_data_fetcher_manager.cc b/device/gamepad/gamepad_data_fetcher_manager.cc |
index 6b46eb80978a2307afea2a6d5c9440b329c95e99..cb91e165d314f7199a49a19c365bdca32624605b 100644 |
--- a/device/gamepad/gamepad_data_fetcher_manager.cc |
+++ b/device/gamepad/gamepad_data_fetcher_manager.cc |
@@ -38,11 +38,13 @@ void GamepadDataFetcherManager::RemoveSourceFactory(GamepadSource source) { |
if (provider_) |
provider_->RemoveSourceGamepadDataFetcher(source); |
- for (FactoryVector::iterator it = factories_.begin(); it != factories_.end(); |
- ++it) { |
+ for (FactoryVector::iterator it = factories_.begin(); |
+ it != factories_.end();) { |
if ((*it)->source() == source) { |
delete (*it); |
- factories_.erase(it); |
+ it = factories_.erase(it); |
+ } else { |
+ ++it; |
} |
} |
} |