Chromium Code Reviews| Index: components/history/core/browser/typed_url_sync_metadata_database.cc |
| diff --git a/components/history/core/browser/typed_url_sync_metadata_database.cc b/components/history/core/browser/typed_url_sync_metadata_database.cc |
| index f0b2ce6ddf35795ceef3f0449fdbe316c368f44b..81e9da0a8e930690b7a6bbfda50714e61fc99998 100644 |
| --- a/components/history/core/browser/typed_url_sync_metadata_database.cc |
| +++ b/components/history/core/browser/typed_url_sync_metadata_database.cc |
| @@ -4,8 +4,9 @@ |
| #include "components/history/core/browser/typed_url_sync_metadata_database.h" |
| +#include "base/big_endian.h" |
| #include "base/logging.h" |
| -#include "base/strings/string_number_conversions.h" |
| +#include "components/history/core/browser/url_row.h" |
| #include "sql/statement.h" |
| namespace history { |
| @@ -55,9 +56,11 @@ bool TypedURLSyncMetadataDatabase::UpdateSyncMetadata( |
| << "Only the TYPED_URLS model type is supported"; |
| int64_t storage_key_int = 0; |
| - if (!base::StringToInt64(storage_key, &storage_key_int)) { |
| - return false; |
| - } |
| + DCHECK_EQ(storage_key.size(), sizeof(storage_key_int)); |
| + base::ReadBigEndian(storage_key.data(), &storage_key_int); |
|
brettw
2017/06/05 17:31:15
The commit message says you changed this to big en
Gang Wu
2017/06/05 20:04:14
Changing to big endian is from a comment from firs
|
| + // Make sure storage_key_int is set. |
| + DCHECK_NE(storage_key_int, 0); |
| + |
| sql::Statement s(GetDB().GetUniqueStatement( |
| "INSERT OR REPLACE INTO typed_url_sync_metadata " |
| "(storage_key, value) VALUES(?, ?)")); |
| @@ -74,9 +77,11 @@ bool TypedURLSyncMetadataDatabase::ClearSyncMetadata( |
| << "Only the TYPED_URLS model type is supported"; |
| int64_t storage_key_int = 0; |
| - if (!base::StringToInt64(storage_key, &storage_key_int)) { |
| - return false; |
| - } |
| + DCHECK_EQ(storage_key.size(), sizeof(storage_key_int)); |
| + base::ReadBigEndian(storage_key.data(), &storage_key_int); |
| + // Make sure storage_key_int is set. |
| + DCHECK_NE(storage_key_int, 0); |
| + |
| sql::Statement s(GetDB().GetUniqueStatement( |
| "DELETE FROM typed_url_sync_metadata WHERE storage_key=?")); |
| s.BindInt64(0, storage_key_int); |
| @@ -122,7 +127,8 @@ bool TypedURLSyncMetadataDatabase::GetAllSyncEntityMetadata( |
| "SELECT storage_key, value FROM typed_url_sync_metadata")); |
| while (s.Step()) { |
| - std::string storage_key = base::Int64ToString(s.ColumnInt64(0)); |
| + std::string storage_key(sizeof(URLID), 0); |
| + base::WriteBigEndian<URLID>(&storage_key[0], s.ColumnInt64(0)); |
| std::string serialized_metadata = s.ColumnString(1); |
| sync_pb::EntityMetadata entity_metadata; |
| if (entity_metadata.ParseFromString(serialized_metadata)) { |