buffet: Better access to JSON properies. We should be checking the return value of the getters to detect failures instead of relying on the value of the out arguments. BUG=None TEST=cros_workon_make buffet --test&&manual Change-Id: I93118ae659600af4017b4925dd0b8ec4bf14f4d8 Reviewed-on: https://chromium-review.googlesource.com/224930 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Reviewed-by: Anton Muhin <antonm@chromium.org> Commit-Queue: Anton Muhin <antonm@chromium.org> Tested-by: Anton Muhin <antonm@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc index 30cbb93..21638e8 100644 --- a/buffet/device_registration_info.cc +++ b/buffet/device_registration_info.cc
@@ -629,19 +629,16 @@ auto abort_commands_cb = [] (const base::DictionaryValue& json) { const base::ListValue* commands{nullptr}; - json.GetList("commands", &commands); - if (commands) { + if (json.GetList("commands", &commands)) { const size_t size{commands->GetSize()}; for (size_t i = 0; i < size; ++i) { const base::DictionaryValue* command{nullptr}; - commands->GetDictionary(i, &command); - if (!command) { + if (!commands->GetDictionary(i, &command)) { LOG(WARNING) << "No command resource at " << i; continue; } std::string command_state; - command->GetString("state", &command_state); - if (command_state.empty()) { + if (!command->GetString("state", &command_state)) { LOG(WARNING) << "Command with no state at " << i; continue; } @@ -652,8 +649,7 @@ continue; } std::string command_id; - command->GetString("id", &command_id); - if (command_id.empty()) { + if (!command->GetString("id", &command_id)) { LOG(WARNING) << "Command with no ID at " << i; continue; }