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

Commit e018119b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix missing check on buffer import." into oc-dr1-dev

parents 1e9bf7c9 cf02372a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -613,6 +613,12 @@ Status<size_t> ConsumerQueue::ImportBuffers() {

    std::unique_ptr<BufferConsumer> buffer_consumer =
        BufferConsumer::Import(std::move(buffer_handle_slot.first));
    if (!buffer_consumer) {
      ALOGE("ConsumerQueue::ImportBuffers: Failed to import buffer: slot=%zu",
            buffer_handle_slot.second);
      last_error = ErrorStatus(EPIPE);
      continue;
    }

    // Setup ignore state before adding buffer to the queue.
    if (ignore_on_import_) {
+3 −0
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ std::shared_ptr<ConsumerQueue> ApplicationDisplaySurface::GetQueue(
           "ApplicationDisplaySurface::GetQueue: surface_id=%d queue_id=%d",
           surface_id(), queue_id);

  std::lock_guard<std::mutex> autolock(lock_);
  auto search = consumer_queues_.find(queue_id);
  if (search != consumer_queues_.end())
    return search->second;
@@ -202,6 +203,7 @@ std::shared_ptr<ConsumerQueue> ApplicationDisplaySurface::GetQueue(
}

std::vector<int32_t> ApplicationDisplaySurface::GetQueueIds() const {
  std::lock_guard<std::mutex> autolock(lock_);
  std::vector<int32_t> queue_ids;
  for (const auto& entry : consumer_queues_)
    queue_ids.push_back(entry.first);
@@ -270,6 +272,7 @@ void ApplicationDisplaySurface::OnQueueEvent(
}

std::vector<int32_t> DirectDisplaySurface::GetQueueIds() const {
  std::lock_guard<std::mutex> autolock(lock_);
  std::vector<int32_t> queue_ids;
  if (direct_queue_)
    queue_ids.push_back(direct_queue_->id());
+1 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ class ApplicationDisplaySurface : public DisplaySurface {
  void OnQueueEvent(const std::shared_ptr<ConsumerQueue>& consumer_queue,
                    int events) override;

  // Accessed by both message dispatch thread and epoll event thread.
  std::unordered_map<int32_t, std::shared_ptr<ConsumerQueue>> consumer_queues_;
};