buffet: StorageInterface::Save accepts const reference Out codebase mostly written with assumption that const parameters passed as const reference. Looking at storage_->Save(&dict) reader may believe that dict is the destination for Save. BUG=none TEST=gizmo-emerge buffet Change-Id: I15b2b1a48e3053979ecd28a8e8775997e7b7e06d Reviewed-on: https://chromium-review.googlesource.com/270793 Commit-Queue: Vitaly Buka <vitalybuka@chromium.org> Tested-by: Vitaly Buka <vitalybuka@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc index 0ef58d7..80e7e9b 100644 --- a/buffet/device_registration_info.cc +++ b/buffet/device_registration_info.cc
@@ -236,7 +236,7 @@ dict.SetString(storage_keys::kAnonymousAccessRole, config_->anonymous_access_role()); - return storage_->Save(&dict); + return storage_->Save(dict); } void DeviceRegistrationInfo::ScheduleStartDevice(const base::TimeDelta& later) {
diff --git a/buffet/device_registration_info_unittest.cc b/buffet/device_registration_info_unittest.cc index ec68b21..417aff4 100644 --- a/buffet/device_registration_info_unittest.cc +++ b/buffet/device_registration_info_unittest.cc
@@ -186,7 +186,7 @@ protected: void SetUp() override { storage_ = std::make_shared<MemStorage>(); - storage_->Save(&data_); + storage_->Save(data_); transport_ = std::make_shared<chromeos::http::fake::Transport>(); command_manager_ = std::make_shared<CommandManager>(); state_manager_ = std::make_shared<StateManager>(&mock_state_change_queue_); @@ -250,7 +250,7 @@ data.SetString(storage_keys::kLocation, "m"); data.SetString(storage_keys::kAnonymousAccessRole, "user"); - storage_->Save(&data); + storage_->Save(data); // This test isn't really trying to test Load, it is just the easiest // way to initialize the properties in dev_reg_. @@ -258,7 +258,7 @@ // Clear the storage to get a clean test. base::DictionaryValue empty; - storage_->Save(&empty); + storage_->Save(empty); EXPECT_TRUE(DeviceRegistrationInfo::TestHelper::Save(dev_reg_.get())); EXPECT_TRUE(storage_->Load()->Equals(&data)); } @@ -287,7 +287,7 @@ EXPECT_EQ(0, transport_->GetRequestCount()); SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); transport_->AddHandler(dev_reg_->GetOAuthURL("token"), @@ -301,7 +301,7 @@ TEST_F(DeviceRegistrationInfoTest, CheckAuthenticationFailure) { SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); EXPECT_EQ(RegistrationStatus::kConnecting, dev_reg_->GetRegistrationStatus()); @@ -319,7 +319,7 @@ TEST_F(DeviceRegistrationInfoTest, CheckDeregistration) { SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); EXPECT_EQ(RegistrationStatus::kConnecting, dev_reg_->GetRegistrationStatus()); @@ -338,7 +338,7 @@ TEST_F(DeviceRegistrationInfoTest, GetDeviceInfo) { SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); transport_->AddHandler(dev_reg_->GetOAuthURL("token"), @@ -360,7 +360,7 @@ TEST_F(DeviceRegistrationInfoTest, GetDeviceId) { SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); transport_->AddHandler(dev_reg_->GetOAuthURL("token"), @@ -513,7 +513,7 @@ dev_reg_->GetRegistrationStatus()); // Put some credentials into our state, make sure we call that offline. SetDefaultDeviceRegistration(&data_); - storage_->Save(&data_); + storage_->Save(data_); EXPECT_TRUE(dev_reg_->Load()); EXPECT_EQ(RegistrationStatus::kConnecting, dev_reg_->GetRegistrationStatus()); }
diff --git a/buffet/storage_impls.cc b/buffet/storage_impls.cc index d95538a..e45ddbf 100644 --- a/buffet/storage_impls.cc +++ b/buffet/storage_impls.cc
@@ -23,10 +23,10 @@ return std::unique_ptr<base::Value>(base::JSONReader::Read(json)); } -bool FileStorage::Save(const base::Value* config) { +bool FileStorage::Save(const base::Value& config) { std::string json; base::JSONWriter::WriteWithOptions( - config, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); + &config, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); return base::ImportantFileWriter::WriteFileAtomically(file_path_, json); } @@ -35,8 +35,8 @@ return std::unique_ptr<base::Value>(cache_->DeepCopy()); } -bool MemStorage::Save(const base::Value* config) { - cache_.reset(config->DeepCopy()); +bool MemStorage::Save(const base::Value& config) { + cache_.reset(config.DeepCopy()); ++save_count_; return true; }
diff --git a/buffet/storage_impls.h b/buffet/storage_impls.h index 8b90a6c..f4034be 100644 --- a/buffet/storage_impls.h +++ b/buffet/storage_impls.h
@@ -19,7 +19,7 @@ explicit FileStorage(const base::FilePath& file_path); virtual ~FileStorage() = default; std::unique_ptr<base::Value> Load() override; - bool Save(const base::Value* config) override; + bool Save(const base::Value& config) override; private: base::FilePath file_path_; @@ -32,7 +32,7 @@ MemStorage() = default; virtual ~MemStorage() = default; std::unique_ptr<base::Value> Load() override; - bool Save(const base::Value* config) override; + bool Save(const base::Value& config) override; int save_count() { return save_count_; } void reset_save_count() { save_count_ = 0; }
diff --git a/buffet/storage_interface.h b/buffet/storage_interface.h index 26d71c1..4f05235 100644 --- a/buffet/storage_interface.h +++ b/buffet/storage_interface.h
@@ -24,7 +24,7 @@ // If saved successfully, returns true. Could fail when writing to // physical storage like file system for various reasons (out of disk space, // access permissions, etc). - virtual bool Save(const base::Value* config) = 0; + virtual bool Save(const base::Value& config) = 0; }; } // namespace buffet