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); |
+ // 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)) { |