- HashMap<OriginStack, OwnPtr<ExecutionCounter> >::iterator iter = m_counters.find(origin);
- if (iter != m_counters.end())
- return iter->value.get();
-
- OwnPtr<ExecutionCounter> counter = adoptPtr(new ExecutionCounter());
- ExecutionCounter* result = counter.get();
- m_counters.add(origin, counter.release());
- return result;
+ std::unique_ptr<ExecutionCounter>& counter = m_counters.add(origin, nullptr).iterator->value;
+ if (!counter)
+ counter = std::make_unique<ExecutionCounter>();
+
+ return counter.get();