Fix resource leak in VirtioGpuTimelines
Remove the entry in mTaskIdToTask when a Task is destroyed.
Test: run the emulator
Change-Id: I936ee8796e7bae6d0f87ceb6478753fb4b70f3c7
diff --git a/stream-servers/VirtioGpuTimelines.cpp b/stream-servers/VirtioGpuTimelines.cpp
index 8ba729f..c4664d4 100644
--- a/stream-servers/VirtioGpuTimelines.cpp
+++ b/stream-servers/VirtioGpuTimelines.cpp
@@ -34,7 +34,10 @@
AutoLock lock(mLock);
TaskId id = mNextId++;
- auto task = std::make_shared<Task>(id, ctxId);
+ std::shared_ptr<Task> task(new Task(id, ctxId), [this](Task *task) {
+ mTaskIdToTask.erase(task->mId);
+ delete task;
+ });
mTaskIdToTask[id] = task;
mTimelineQueues[ctxId].emplace_back(std::move(task));
return id;