Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15fe9240 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "gd HCI: Drop unregistered events" am: acae23eb

Change-Id: Id2d669ac56660063c0ee11f9bb1e90ac099ec725
parents d65c0a5b acae23eb
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -316,8 +316,13 @@ struct HciLayer::impl : public hal::HciHalCallbacks {
    SubeventCode subevent_code = meta_event_view.GetSubeventCode();
    ASSERT_LOG(subevent_handlers_.find(subevent_code) != subevent_handlers_.end(),
               "Unhandled le event of type 0x%02hhx (%s)", subevent_code, SubeventCodeText(subevent_code).c_str());
    auto& registered_handler = subevent_handlers_[subevent_code].subevent_handler;
    subevent_handlers_[subevent_code].handler->Post(BindOnce(registered_handler, meta_event_view));
    auto& registered = subevent_handlers_[subevent_code];
    if (registered.handler != nullptr) {
      registered.handler->Post(BindOnce(registered.subevent_handler, meta_event_view));
    } else {
      LOG_DEBUG("Dropping unregistered le event of type 0x%02hhx (%s)", subevent_code,
                SubeventCodeText(subevent_code).c_str());
    }
  }

  // Invoked from HAL thread
@@ -333,8 +338,12 @@ struct HciLayer::impl : public hal::HciHalCallbacks {
    EventCode event_code = event.GetEventCode();
    ASSERT_LOG(event_handlers_.find(event_code) != event_handlers_.end(), "Unhandled event of type 0x%02hhx (%s)",
               event_code, EventCodeText(event_code).c_str());
    auto& registered_handler = event_handlers_[event_code].event_handler;
    event_handlers_[event_code].handler->Post(BindOnce(registered_handler, std::move(event)));
    auto& registered = event_handlers_[event_code];
    if (registered.handler != nullptr) {
      registered.handler->Post(BindOnce(registered.event_handler, event));
    } else {
      LOG_DEBUG("Dropping unregistered event of type 0x%02hhx (%s)", event_code, EventCodeText(event_code).c_str());
    }
  }

  // From HAL thread
@@ -421,7 +430,7 @@ struct HciLayer::impl : public hal::HciHalCallbacks {
  }

  void handle_unregister_event_handler(EventCode event_code) {
    event_handlers_.erase(event_code);
    event_handlers_[event_code] = EventHandler();
  }

  void RegisterLeEventHandler(SubeventCode subevent_code, Callback<void(LeMetaEventView)> event_handler,
@@ -444,7 +453,7 @@ struct HciLayer::impl : public hal::HciHalCallbacks {
  }

  void handle_unregister_le_event_handler(SubeventCode subevent_code) {
    subevent_handlers_.erase(subevent_code);
    subevent_handlers_[subevent_code] = SubeventHandler();
  }

  // The HAL