| Index: chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc b/chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc
|
| index 031e1d7d45dad3619192fd9c801a37ddfc5c444f..d743980ec7e8ca8088fb65f7a7751b22e1ebc192 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc
|
| +++ b/chrome/browser/sync_file_system/drive_backend/drive_backend_util.cc
|
| @@ -169,12 +169,18 @@ scoped_ptr<ServiceMetadata> InitializeServiceMetadata(LevelDBWrapper* db) {
|
| base::ThreadRestrictions::AssertIOAllowed();
|
| DCHECK(db);
|
|
|
| + scoped_ptr<ServiceMetadata> service_metadata;
|
| +
|
| std::string value;
|
| leveldb::Status status = db->Get(kServiceMetadataKey, &value);
|
| -
|
| - scoped_ptr<ServiceMetadata> service_metadata(new ServiceMetadata);
|
| - if (!status.ok() || !service_metadata->ParseFromString(value))
|
| + if (status.ok()) {
|
| + service_metadata.reset(new ServiceMetadata);
|
| + if (!service_metadata->ParseFromString(value))
|
| + service_metadata.reset();
|
| + } else if (status.IsNotFound()) {
|
| + service_metadata.reset(new ServiceMetadata);
|
| service_metadata->set_next_tracker_id(1);
|
| + }
|
|
|
| return service_metadata.Pass();
|
| }
|
|
|