Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/base/resource/data_pack.h" | 5 #include "ui/base/resource/data_pack.h" |
| 6 | 6 |
| 7 #include <errno.h> | 7 #include <errno.h> |
| 8 | 8 |
| 9 #include <algorithm> | |
| 10 | |
| 9 #include "base/files/file_util.h" | 11 #include "base/files/file_util.h" |
| 10 #include "base/files/memory_mapped_file.h" | 12 #include "base/files/memory_mapped_file.h" |
| 11 #include "base/logging.h" | 13 #include "base/logging.h" |
| 12 #include "base/memory/ref_counted_memory.h" | 14 #include "base/memory/ref_counted_memory.h" |
| 13 #include "base/metrics/histogram.h" | 15 #include "base/metrics/histogram.h" |
| 14 #include "base/strings/string_piece.h" | 16 #include "base/strings/string_piece.h" |
| 15 | 17 |
| 16 // For details of the file layout, see | 18 // For details of the file layout, see |
| 17 // http://dev.chromium.org/developers/design-documents/linuxresourcesandlocalize dstrings | 19 // http://dev.chromium.org/developers/design-documents/linuxresourcesandlocalize dstrings |
| 18 | 20 |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 } | 226 } |
| 225 | 227 |
| 226 ResourceHandle::TextEncodingType DataPack::GetTextEncodingType() const { | 228 ResourceHandle::TextEncodingType DataPack::GetTextEncodingType() const { |
| 227 return text_encoding_type_; | 229 return text_encoding_type_; |
| 228 } | 230 } |
| 229 | 231 |
| 230 ui::ScaleFactor DataPack::GetScaleFactor() const { | 232 ui::ScaleFactor DataPack::GetScaleFactor() const { |
| 231 return scale_factor_; | 233 return scale_factor_; |
| 232 } | 234 } |
| 233 | 235 |
| 236 #if DCHECK_IS_ON() | |
| 237 void DataPack::CheckForDuplicateResources( | |
| 238 const ScopedVector<ResourceHandle>& packs) { | |
| 239 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()
| |
| 240 const DataPackEntry* entry = reinterpret_cast<const DataPackEntry*>( | |
| 241 mmap_->data() + kHeaderLength + (i * sizeof(DataPackEntry))); | |
| 242 const uint16 resource_id = entry->resource_id; | |
| 243 const float resource_scale = GetScaleForScaleFactor(scale_factor_); | |
| 244 std::for_each(packs.begin(), packs.end(), | |
| 245 [resource_id, resource_scale](const ResourceHandle* handle) { | |
| 246 DCHECK(GetScaleForScaleFactor(handle->GetScaleFactor()) != | |
| 247 resource_scale || | |
| 248 !handle->HasResource(resource_id)); | |
| 249 }); | |
|
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.
| |
| 250 } | |
| 251 } | |
| 252 #endif // DCHECK_IS_ON() | |
| 253 | |
| 234 // static | 254 // static |
| 235 bool DataPack::WritePack(const base::FilePath& path, | 255 bool DataPack::WritePack(const base::FilePath& path, |
| 236 const std::map<uint16, base::StringPiece>& resources, | 256 const std::map<uint16, base::StringPiece>& resources, |
| 237 TextEncodingType textEncodingType) { | 257 TextEncodingType textEncodingType) { |
| 238 FILE* file = base::OpenFile(path, "wb"); | 258 FILE* file = base::OpenFile(path, "wb"); |
| 239 if (!file) | 259 if (!file) |
| 240 return false; | 260 return false; |
| 241 | 261 |
| 242 if (fwrite(&kFileFormatVersion, sizeof(kFileFormatVersion), 1, file) != 1) { | 262 if (fwrite(&kFileFormatVersion, sizeof(kFileFormatVersion), 1, file) != 1) { |
| 243 LOG(ERROR) << "Failed to write file version"; | 263 LOG(ERROR) << "Failed to write file version"; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 316 return false; | 336 return false; |
| 317 } | 337 } |
| 318 } | 338 } |
| 319 | 339 |
| 320 base::CloseFile(file); | 340 base::CloseFile(file); |
| 321 | 341 |
| 322 return true; | 342 return true; |
| 323 } | 343 } |
| 324 | 344 |
| 325 } // namespace ui | 345 } // namespace ui |
| OLD | NEW |