buffet: Replace CallbackList with vector<Callback>

We don't remove callback at runtime, so callbacks on WeakPtr
are enough there.

BUG=brillo:697
TEST=FEATURE=test emerge-gizmo buffet

Change-Id: I02573979b208d0e9df62e59f4bb3bbec92608b71
Reviewed-on: https://chromium-review.googlesource.com/270279
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/manager.cc b/buffet/manager.cc
index 82ee7a8..a5fff7d 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -53,8 +53,8 @@
                     const AsyncEventSequencer::CompletionAction& cb) {
   command_manager_ =
       std::make_shared<CommandManager>(dbus_object_.GetObjectManager());
-  command_changed_callback_token_ = command_manager_->AddOnCommandDefChanged(
-      base::Bind(&Manager::OnCommandDefsChanged, base::Unretained(this)));
+  command_manager_->AddOnCommandDefChanged(base::Bind(
+      &Manager::OnCommandDefsChanged, weak_ptr_factory_.GetWeakPtr()));
   command_manager_->Startup(base::FilePath{"/etc/buffet"},
                             test_definitions_path);
   state_change_queue_ = std::unique_ptr<StateChangeQueue>(