| Index: media/midi/midi_manager_alsa.cc
 | 
| diff --git a/media/midi/midi_manager_alsa.cc b/media/midi/midi_manager_alsa.cc
 | 
| index 990b50a1643db9c5ee9d0bbbb1b16720bdf6dbed..e42543078261ee411162ff6d3108e85d1095632f 100644
 | 
| --- a/media/midi/midi_manager_alsa.cc
 | 
| +++ b/media/midi/midi_manager_alsa.cc
 | 
| @@ -145,8 +145,7 @@ void SetStringIfNonEmpty(base::DictionaryValue* value,
 | 
|  }  // namespace
 | 
|  
 | 
|  MidiManagerAlsa::MidiManagerAlsa()
 | 
| -    : alsa_cards_deleter_(&alsa_cards_),
 | 
| -      udev_(device::udev_new()),
 | 
| +    : udev_(device::udev_new()),
 | 
|        send_thread_("MidiSendThread"),
 | 
|        event_thread_("MidiEventThread") {
 | 
|    // Initialize decoder.
 | 
| @@ -587,8 +586,7 @@ uint32 MidiManagerAlsa::MidiPortState::Insert(scoped_ptr<MidiPort> port) {
 | 
|    return web_port_index;
 | 
|  }
 | 
|  
 | 
| -MidiManagerAlsa::AlsaSeqState::AlsaSeqState()
 | 
| -    : clients_deleter_(&clients_), card_client_count_(0) {
 | 
| +MidiManagerAlsa::AlsaSeqState::AlsaSeqState() : card_client_count_(0) {
 | 
|  }
 | 
|  
 | 
|  MidiManagerAlsa::AlsaSeqState::~AlsaSeqState() = default;
 | 
| @@ -597,7 +595,7 @@ void MidiManagerAlsa::AlsaSeqState::ClientStart(int client_id,
 | 
|                                                  const std::string& client_name,
 | 
|                                                  snd_seq_client_type_t type) {
 | 
|    ClientExit(client_id);
 | 
| -  clients_[client_id] = new Client(client_name, type);
 | 
| +  clients_.insert(client_id, make_scoped_ptr(new Client(client_name, type)));
 | 
|    if (IsCardClient(type, client_id))
 | 
|      ++card_client_count_;
 | 
|  }
 | 
| @@ -611,7 +609,6 @@ void MidiManagerAlsa::AlsaSeqState::ClientExit(int client_id) {
 | 
|    if (it != clients_.end()) {
 | 
|      if (IsCardClient(it->second->type(), client_id))
 | 
|        --card_client_count_;
 | 
| -    delete it->second;
 | 
|      clients_.erase(it);
 | 
|    }
 | 
|  }
 | 
| @@ -728,23 +725,18 @@ MidiManagerAlsa::AlsaSeqState::Port::~Port() = default;
 | 
|  
 | 
|  MidiManagerAlsa::AlsaSeqState::Client::Client(const std::string& name,
 | 
|                                                snd_seq_client_type_t type)
 | 
| -    : name_(name), type_(type), ports_deleter_(&ports_) {
 | 
| +    : name_(name), type_(type) {
 | 
|  }
 | 
|  
 | 
|  MidiManagerAlsa::AlsaSeqState::Client::~Client() = default;
 | 
|  
 | 
|  void MidiManagerAlsa::AlsaSeqState::Client::AddPort(int addr,
 | 
|                                                      scoped_ptr<Port> port) {
 | 
| -  RemovePort(addr);
 | 
| -  ports_[addr] = port.release();
 | 
| +  ports_.set(addr, port.Pass());
 | 
|  }
 | 
|  
 | 
|  void MidiManagerAlsa::AlsaSeqState::Client::RemovePort(int addr) {
 | 
| -  auto it = ports_.find(addr);
 | 
| -  if (it != ports_.end()) {
 | 
| -    delete it->second;
 | 
| -    ports_.erase(it);
 | 
| -  }
 | 
| +  ports_.erase(addr);
 | 
|  }
 | 
|  
 | 
|  MidiManagerAlsa::AlsaSeqState::Client::PortMap::const_iterator
 | 
| @@ -1129,9 +1121,12 @@ void MidiManagerAlsa::AddCard(udev_device* dev) {
 | 
|    }
 | 
|    snd_ctl_close(handle);
 | 
|  
 | 
| -  if (midi_count > 0)
 | 
| -    alsa_cards_[number] = new AlsaCard(dev, name, longname, driver, midi_count);
 | 
| -  alsa_card_midi_count_ += midi_count;
 | 
| +  if (midi_count > 0) {
 | 
| +    scoped_ptr<AlsaCard> card(
 | 
| +        new AlsaCard(dev, name, longname, driver, midi_count));
 | 
| +    alsa_cards_.insert(number, card.Pass());
 | 
| +    alsa_card_midi_count_ += midi_count;
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  void MidiManagerAlsa::RemoveCard(int number) {
 | 
| @@ -1140,7 +1135,6 @@ void MidiManagerAlsa::RemoveCard(int number) {
 | 
|      return;
 | 
|  
 | 
|    alsa_card_midi_count_ -= it->second->midi_device_count();
 | 
| -  delete it->second;
 | 
|    alsa_cards_.erase(it);
 | 
|  }
 | 
|  
 | 
| 
 |