Chromium Code Reviews| Index: ui/base/resource/data_pack.cc |
| diff --git a/ui/base/resource/data_pack.cc b/ui/base/resource/data_pack.cc |
| index f9fe9b8469eeb35d3369a4c32cb09ace5ba48b0f..ad3bcfec030c5a0882c597378de4eb09f1441ad0 100644 |
| --- a/ui/base/resource/data_pack.cc |
| +++ b/ui/base/resource/data_pack.cc |
| @@ -6,6 +6,8 @@ |
| #include <errno.h> |
| +#include <algorithm> |
| + |
| #include "base/files/file_util.h" |
| #include "base/files/memory_mapped_file.h" |
| #include "base/logging.h" |
| @@ -231,6 +233,24 @@ ui::ScaleFactor DataPack::GetScaleFactor() const { |
| return scale_factor_; |
| } |
| +#if DCHECK_IS_ON() |
| +void DataPack::CheckForDuplicateResources( |
| + const ScopedVector<ResourceHandle>& packs) { |
| + for (size_t i = 0; i < resource_count_ + 1; ++i) { |
|
Nico
2015/05/02 00:50:48
why + 1?
sadrul
2015/05/02 04:17:09
I am following the code from DataPack::LoadImpl()
|
| + const DataPackEntry* entry = reinterpret_cast<const DataPackEntry*>( |
| + mmap_->data() + kHeaderLength + (i * sizeof(DataPackEntry))); |
| + const uint16 resource_id = entry->resource_id; |
| + const float resource_scale = GetScaleForScaleFactor(scale_factor_); |
| + std::for_each(packs.begin(), packs.end(), |
| + [resource_id, resource_scale](const ResourceHandle* handle) { |
| + DCHECK(GetScaleForScaleFactor(handle->GetScaleFactor()) != |
| + resource_scale || |
| + !handle->HasResource(resource_id)); |
| + }); |
|
Nico
2015/05/02 00:50:48
nit: Writing this as
for (const ResourceHandl
sadrul
2015/05/02 04:17:09
Heh, yeah. Totally. Done.
|
| + } |
| +} |
| +#endif // DCHECK_IS_ON() |
| + |
| // static |
| bool DataPack::WritePack(const base::FilePath& path, |
| const std::map<uint16, base::StringPiece>& resources, |