Index: media/midi/midi_manager.cc |
diff --git a/media/midi/midi_manager.cc b/media/midi/midi_manager.cc |
index aba8441ef8f0548ef417dcd477b8e17b934cdf19..c53eef4112c33a662bd5e850e38c497df8c52aaf 100644 |
--- a/media/midi/midi_manager.cc |
+++ b/media/midi/midi_manager.cc |
@@ -43,8 +43,7 @@ void MidiManager::StartSession(MidiManagerClient* client, int client_id) { |
if (!too_many_pending_clients_exist) { |
// Call StartInitialization() only for the first request. |
session_needs_initialization = pending_clients_.empty(); |
- pending_clients_.insert( |
- std::pair<int, MidiManagerClient*>(client_id, client)); |
+ pending_clients_.insert(std::make_pair(client, client_id)); |
} |
} |
} |
@@ -81,9 +80,8 @@ void MidiManager::StartSession(MidiManagerClient* client, int client_id) { |
void MidiManager::EndSession(MidiManagerClient* client) { |
base::AutoLock auto_lock(lock_); |
- ClientList::iterator i = clients_.find(client); |
- if (i != clients_.end()) |
- clients_.erase(i); |
+ clients_.erase(client); |
+ pending_clients_.erase(client); |
} |
void MidiManager::DispatchSendMidiData(MidiManagerClient* client, |
@@ -132,7 +130,6 @@ void MidiManager::CompleteInitializationInternal(MidiResult result) { |
base::AutoLock auto_lock(lock_); |
DCHECK(clients_.empty()); |
- DCHECK(!pending_clients_.empty()); |
DCHECK(!initialized_); |
initialized_ = true; |
result_ = result; |
@@ -141,8 +138,8 @@ void MidiManager::CompleteInitializationInternal(MidiResult result) { |
it != pending_clients_.end(); |
++it) { |
if (result_ == MIDI_OK) |
- clients_.insert(it->second); |
- it->second->CompleteStartSession(it->first, result_); |
+ clients_.insert(it->first); |
+ it->first->CompleteStartSession(it->second, result_); |
} |
pending_clients_.clear(); |
} |