QualifiedName::QualifiedName(const AtomicString& p, const AtomicString& l, const AtomicString& n) { QualifiedNameComponents components = { p.impl(), l.impl(), n.isEmpty() ? nullAtom.impl() : n.impl() }; QNameSet::AddResult addResult = qualifiedNameCache().add<QNameComponentsTranslator>(components); m_impl = *addResult.iterator; if (!addResult.isNewEntry) m_impl->ref(); }
QualifiedName::QualifiedName(const AtomicString& p, const AtomicString& l, const AtomicString& n, bool isStatic) { QualifiedNameData data = { { p.impl(), l.impl(), n.impl() }, isStatic }; QualifiedNameCache::AddResult addResult = qualifiedNameCache().add<QNameComponentsTranslator>(data); m_impl = addResult.isNewEntry ? adoptRef(*addResult.storedValue) : *addResult.storedValue; }
QualifiedName::QualifiedNameImpl::~QualifiedNameImpl() { qualifiedNameCache().remove(this); }
QualifiedName::QualifiedName(const AtomicString& p, const AtomicString& l, const AtomicString& n) { QualifiedNameData data = { { p.impl(), l.impl(), n.isEmpty() ? nullAtom.impl() : n.impl() }, false }; QualifiedNameCache::AddResult addResult = qualifiedNameCache().add<QNameComponentsTranslator>(data); m_impl = addResult.isNewEntry ? adoptRef(*addResult.storedValue) : *addResult.storedValue; }