| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |  | 
| 2 // Use of this source code is governed by a BSD-style license that can be |  | 
| 3 // found in the LICENSE file. |  | 
| 4 |  | 
| 5 #include "mojo/edk/system/mapping_table.h" |  | 
| 6 |  | 
| 7 #include "base/logging.h" |  | 
| 8 #include "mojo/edk/embedder/platform_shared_buffer.h" |  | 
| 9 #include "mojo/edk/system/configuration.h" |  | 
| 10 |  | 
| 11 namespace mojo { |  | 
| 12 namespace system { |  | 
| 13 |  | 
| 14 MappingTable::MappingTable() { |  | 
| 15 } |  | 
| 16 |  | 
| 17 MappingTable::~MappingTable() { |  | 
| 18   // This should usually not be reached (the only instance should be owned by |  | 
| 19   // the singleton |Core|, which lives forever), except in tests. |  | 
| 20 } |  | 
| 21 |  | 
| 22 MojoResult MappingTable::AddMapping( |  | 
| 23     scoped_ptr<embedder::PlatformSharedBufferMapping> mapping) { |  | 
| 24   DCHECK(mapping); |  | 
| 25 |  | 
| 26   if (address_to_mapping_map_.size() >= |  | 
| 27       GetConfiguration().max_mapping_table_sze) |  | 
| 28     return MOJO_RESULT_RESOURCE_EXHAUSTED; |  | 
| 29 |  | 
| 30   uintptr_t address = reinterpret_cast<uintptr_t>(mapping->GetBase()); |  | 
| 31   DCHECK(address_to_mapping_map_.find(address) == |  | 
| 32          address_to_mapping_map_.end()); |  | 
| 33   address_to_mapping_map_[address] = mapping.release(); |  | 
| 34   return MOJO_RESULT_OK; |  | 
| 35 } |  | 
| 36 |  | 
| 37 MojoResult MappingTable::RemoveMapping(uintptr_t address) { |  | 
| 38   AddressToMappingMap::iterator it = address_to_mapping_map_.find(address); |  | 
| 39   if (it == address_to_mapping_map_.end()) |  | 
| 40     return MOJO_RESULT_INVALID_ARGUMENT; |  | 
| 41   embedder::PlatformSharedBufferMapping* mapping_to_delete = it->second; |  | 
| 42   address_to_mapping_map_.erase(it); |  | 
| 43   delete mapping_to_delete; |  | 
| 44   return MOJO_RESULT_OK; |  | 
| 45 } |  | 
| 46 |  | 
| 47 }  // namespace system |  | 
| 48 }  // namespace mojo |  | 
| OLD | NEW | 
|---|