Index: chrome/utility/importer/ie_importer_win.cc |
diff --git a/chrome/utility/importer/ie_importer_win.cc b/chrome/utility/importer/ie_importer_win.cc |
index f2fceb0d621a531d088f3ba13ffe62c8c6bb2c76..2ef4b470fe42970b914536ac962eb419f4c23284 100644 |
--- a/chrome/utility/importer/ie_importer_win.cc |
+++ b/chrome/utility/importer/ie_importer_win.cc |
@@ -7,6 +7,7 @@ |
#include <ole2.h> |
#include <intshcut.h> |
#include <shlobj.h> |
+#include <stddef.h> |
#include <urlhist.h> |
#include <wininet.h> |
@@ -18,6 +19,7 @@ |
#include "base/files/file_enumerator.h" |
#include "base/files/file_path.h" |
#include "base/files/file_util.h" |
+#include "base/macros.h" |
#include "base/strings/string16.h" |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
@@ -80,8 +82,8 @@ base::Time GetFileCreationTime(const base::string16& file) { |
} |
// Safely read an object of type T from a raw sequence of bytes. |
-template<typename T> |
-bool BinaryRead(T* data, size_t offset, const std::vector<uint8>& blob) { |
+template <typename T> |
+bool BinaryRead(T* data, size_t offset, const std::vector<uint8_t>& blob) { |
if (offset + sizeof(T) > blob.size()) |
return false; |
memcpy(data, &blob[offset], sizeof(T)); |
@@ -94,8 +96,9 @@ bool BinaryRead(T* data, size_t offset, const std::vector<uint8>& blob) { |
// .cb = 0. Here, before simply casting &blob[offset] to LPITEMIDLIST, |
// we verify that the list structure is not overrunning the boundary of |
// the binary blob. |
-LPCITEMIDLIST BinaryReadItemIDList(size_t offset, size_t idlist_size, |
- const std::vector<uint8>& blob) { |
+LPCITEMIDLIST BinaryReadItemIDList(size_t offset, |
+ size_t idlist_size, |
+ const std::vector<uint8_t>& blob) { |
size_t head = 0; |
while (true) { |
// Use a USHORT instead of SHITEMID to avoid buffer over read. |
@@ -114,7 +117,7 @@ LPCITEMIDLIST BinaryReadItemIDList(size_t offset, size_t idlist_size, |
struct IEOrderBookmarkComparator { |
bool operator()(const ImportedBookmarkEntry& lhs, |
const ImportedBookmarkEntry& rhs) const { |
- static const uint32 kNotSorted = 0xfffffffb; // IE uses this magic value. |
+ static const uint32_t kNotSorted = 0xfffffffb; // IE uses this magic value. |
base::FilePath lhs_prefix; |
base::FilePath rhs_prefix; |
for (size_t i = 0; i <= lhs.path.size() && i <= rhs.path.size(); ++i) { |
@@ -127,14 +130,14 @@ struct IEOrderBookmarkComparator { |
if (lhs_i == rhs_i) |
continue; |
// The first path element that differs between the two. |
- std::map<base::FilePath, uint32>::const_iterator lhs_iter = |
- sort_index_->find(lhs_prefix); |
- std::map<base::FilePath, uint32>::const_iterator rhs_iter = |
- sort_index_->find(rhs_prefix); |
- uint32 lhs_sort_index = (lhs_iter == sort_index_->end() ? kNotSorted |
- : lhs_iter->second); |
- uint32 rhs_sort_index = (rhs_iter == sort_index_->end() ? kNotSorted |
- : rhs_iter->second); |
+ std::map<base::FilePath, uint32_t>::const_iterator lhs_iter = |
+ sort_index_->find(lhs_prefix); |
+ std::map<base::FilePath, uint32_t>::const_iterator rhs_iter = |
+ sort_index_->find(rhs_prefix); |
+ uint32_t lhs_sort_index = |
+ (lhs_iter == sort_index_->end() ? kNotSorted : lhs_iter->second); |
+ uint32_t rhs_sort_index = |
+ (rhs_iter == sort_index_->end() ? kNotSorted : rhs_iter->second); |
if (lhs_sort_index != rhs_sort_index) |
return lhs_sort_index < rhs_sort_index; |
// If they have the same sort order, sort alphabetically. |
@@ -142,7 +145,7 @@ struct IEOrderBookmarkComparator { |
} |
return lhs.path.size() < rhs.path.size(); |
} |
- const std::map<base::FilePath, uint32>* sort_index_; |
+ const std::map<base::FilePath, uint32_t>* sort_index_; |
}; |
// IE stores the order of the Favorites menu in registry under: |
@@ -155,8 +158,9 @@ struct IEOrderBookmarkComparator { |
// The content of the "Order" value is a raw binary dump of an array of the |
// following data structure |
// struct { |
-// uint32 size; // Note that ITEMIDLIST is variably-sized. |
-// uint32 sort_index; // 0 means this is the first item, 1 the second, ... |
+// uint32_t size; // Note that ITEMIDLIST is variably-sized. |
+// uint32_t sort_index; // 0 means this is the first item, 1 the second, |
+// ... |
// ITEMIDLIST item_id; |
// }; |
// where each item_id should correspond to a favorites link file (*.url) in |
@@ -167,38 +171,38 @@ struct IEOrderBookmarkComparator { |
// build on Windows, declare some prototypes anyway to satisfy Clang's gcc |
// compatibility warnings. |
bool ParseFavoritesOrderBlob(const Importer* importer, |
- const std::vector<uint8>& blob, |
+ const std::vector<uint8_t>& blob, |
const base::FilePath& path, |
- std::map<base::FilePath, uint32>* sort_index) |
+ std::map<base::FilePath, uint32_t>* sort_index) |
WARN_UNUSED_RESULT; |
bool ParseFavoritesOrderBlob(const Importer* importer, |
- const std::vector<uint8>& blob, |
+ const std::vector<uint8_t>& blob, |
const base::FilePath& path, |
- std::map<base::FilePath, uint32>* sort_index) { |
+ std::map<base::FilePath, uint32_t>* sort_index) { |
static const int kItemCountOffset = 16; |
static const int kItemListStartOffset = 20; |
// Read the number of items. |
- uint32 item_count = 0; |
+ uint32_t item_count = 0; |
if (!BinaryRead(&item_count, kItemCountOffset, blob)) |
return false; |
// Traverse over the items. |
size_t base_offset = kItemListStartOffset; |
- for (uint32 i = 0; i < item_count && !importer->cancelled(); ++i) { |
+ for (uint32_t i = 0; i < item_count && !importer->cancelled(); ++i) { |
static const int kSizeOffset = 0; |
static const int kSortIndexOffset = 4; |
static const int kItemIDListOffset = 8; |
// Read the size (number of bytes) of the current item. |
- uint32 item_size = 0; |
+ uint32_t item_size = 0; |
if (!BinaryRead(&item_size, base_offset + kSizeOffset, blob) || |
base_offset + item_size <= base_offset || // checking overflow |
base_offset + item_size > blob.size()) |
return false; |
// Read the sort index of the current item. |
- uint32 item_sort_index = 0; |
+ uint32_t item_sort_index = 0; |
if (!BinaryRead(&item_sort_index, base_offset + kSortIndexOffset, blob)) |
return false; |
@@ -222,16 +226,16 @@ bool ParseFavoritesOrderRegistryTree( |
const Importer* importer, |
const base::win::RegKey& key, |
const base::FilePath& path, |
- std::map<base::FilePath, uint32>* sort_index) WARN_UNUSED_RESULT; |
+ std::map<base::FilePath, uint32_t>* sort_index) WARN_UNUSED_RESULT; |
bool ParseFavoritesOrderRegistryTree( |
const Importer* importer, |
const base::win::RegKey& key, |
const base::FilePath& path, |
- std::map<base::FilePath, uint32>* sort_index) { |
+ std::map<base::FilePath, uint32_t>* sort_index) { |
// Parse the order information of the current folder. |
DWORD blob_length = 0; |
if (key.ReadValue(L"Order", NULL, &blob_length, NULL) == ERROR_SUCCESS) { |
- std::vector<uint8> blob(blob_length); |
+ std::vector<uint8_t> blob(blob_length); |
if (blob_length > 0 && |
key.ReadValue(L"Order", reinterpret_cast<DWORD*>(&blob[0]), |
&blob_length, NULL) == ERROR_SUCCESS) { |
@@ -257,10 +261,10 @@ bool ParseFavoritesOrderRegistryTree( |
} |
bool ParseFavoritesOrderInfo(const Importer* importer, |
- std::map<base::FilePath, uint32>* sort_index) |
+ std::map<base::FilePath, uint32_t>* sort_index) |
WARN_UNUSED_RESULT; |
bool ParseFavoritesOrderInfo(const Importer* importer, |
- std::map<base::FilePath, uint32>* sort_index) { |
+ std::map<base::FilePath, uint32_t>* sort_index) { |
base::string16 key_path(importer::GetIEFavoritesOrderKey()); |
base::win::RegKey key(HKEY_CURRENT_USER, key_path.c_str(), KEY_READ); |
if (!key.Valid()) |
@@ -274,7 +278,7 @@ bool ParseFavoritesOrderInfo(const Importer* importer, |
void SortBookmarksInIEOrder( |
const Importer* importer, |
std::vector<ImportedBookmarkEntry>* bookmarks) { |
- std::map<base::FilePath, uint32> sort_index; |
+ std::map<base::FilePath, uint32_t> sort_index; |
if (!ParseFavoritesOrderInfo(importer, &sort_index)) |
return; |
IEOrderBookmarkComparator compare = {&sort_index}; |
@@ -424,7 +428,7 @@ const GUID IEImporter::kUnittestGUID = { |
IEImporter::IEImporter() : edge_import_mode_(false) {} |
void IEImporter::StartImport(const importer::SourceProfile& source_profile, |
- uint16 items, |
+ uint16_t items, |
ImporterBridge* bridge) { |
edge_import_mode_ = source_profile.importer_type == importer::TYPE_EDGE; |
bridge_ = bridge; |