}
void SampleTree::AddProcess(int pid, const std::string& comm) {
+ auto it = process_tree_.find(pid);
+ if (it != process_tree_.end()) {
+ it->second->comm = comm;
+ return;
+ }
ProcessEntry* process = new ProcessEntry{
.pid = pid, .comm = comm,
};
const ProcessEntry* SampleTree::FindProcessEntryOrNew(int pid) {
auto it = process_tree_.find(pid);
if (it == process_tree_.end()) {
- ProcessEntry* process = new ProcessEntry{
- .pid = pid, .comm = "unknown",
- };
- auto pair = process_tree_.insert(std::make_pair(pid, std::unique_ptr<ProcessEntry>(process)));
- it = pair.first;
- CHECK(pair.second);
+ AddProcess(pid, "unknown");
+ it = process_tree_.find(pid);
}
return it->second.get();
}