Acid3 wastes time building NSEnumerators for Font Cache We spend 3% of our time building an NSEnumerator to walk the font cache. We spend > 3% of total Acid3 rendering time diddling with Position objects. There is a bunch of other low-hanging fruit it seems. 23.7% 23.7% WebCore WebCore::Font::drawGlyphs(WebCore::GraphicsContext*, WebCore::SimpleFontData const*, WebCore::GlyphBuffer const&, int, int, WebCore::FloatPoint const&) const 16.0% 16.0% WebCore WebCore::GraphicsContext::fillRect(WebCore::IntRect const&, WebCore::Color const&) 3.0% 3.0% WebCore +[WebFontCache internalFontWithFamily:traits:size:] 2.8% 2.8% WebCore WebCore::Widget::paint(WebCore::GraphicsContext*, WebCore::IntRect const&) 1.8% 1.8% WebCore WebCore::GraphicsContext::drawRect(WebCore::IntRect const&) 1.7% 1.7% WebCore WebCore::setCGFillColor(CGContext*, WebCore::Color const&) 1.3% 1.3% WebCore WebCore::setSharedTimerFireTime(double) 1.2% 1.2% WebCore WebCore::previousVisuallyDistinctCandidate(WebCore::Position const&) 1.1% 1.1% WebCore WebCore::Position::previous(WebCore::EUsingComposedCharacters) const 1.0% 1.0% JavaScriptCore WTF::fastMalloc(unsigned long) 1.0% 1.0% WebCore WebCore::ScrollView::updateContents(WebCore::IntRect const&, bool) 0.9% 0.9% WebCore WebCore::stopSharedTimer() 0.8% 0.8% WebCore WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*) 0.8% 0.8% WebKit -[WebHTMLView drawSingleRect:] 0.7% 0.7% WebCore WebCore::PositionIterator::increment() 0.7% 0.7% WebCore WebCore::PositionIterator::atEnd() const 0.7% 0.7% WebCore WebCore::HTMLTokenizer::parseSpecial(WebCore::SegmentedString&, WebCore::HTMLTokenizer::State) 0.6% 0.6% JavaScriptCore WTF::fastFree(void*) 0.6% 0.6% JavaScriptCore kjsyyparse() 0.6% 0.6% JavaScriptCore KJS::Lexer::lex() 0.6% 0.6% WebKit -[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:] 0.5% 0.5% WebCore WebCore::CSSStyleSelector::applyDeclarations(bool, bool, int, int) 0.5% 0.5% WebKit -[WebHTMLView(WebPrivate) _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 0.5% 0.5% WebCore WebCore::maxDeepOffset(WebCore::Node const*) 0.4% 0.4% WebCore WebCore::Position::uncheckedNextOffset(WebCore::Node const*, int) 0.4% 0.4% WebCore WebCore::Position::isCandidate() const 0.4% 0.4% WebCore WebCore::ScrollView::resizeContents(int, int) 0.4% 0.4% WebCore WebCore::Position::atStart() const 0.4% 0.4% WebKit -[WebHTMLView(WebPrivate) viewWillDraw] 0.4% 0.4% WebKit -[WebHTMLView visibleRect] 0.4% 0.4% WebKit -[_WebSafeForwarder forwardInvocation:] 0.3% 0.3% WebCore WebCore::ResourceRequest::doUpdatePlatformRequest() 0.3% 0.3% WebCore WebCore::Position::uncheckedPreviousOffset(WebCore::Node const*, int) 0.3% 0.3% WebCore WebCore::KURL::createCFURL() const 0.3% 0.3% WebCore WebCore::Node::hasChildNodes() const 0.3% 0.3% WebKit -[WebDynamicScrollBarsView(WebInternal) updateScrollers] 0.3% 0.3% WebCore WebCore::CharacterData::maxCharacterOffset() const 0.2% 0.2% WebCore WTF::HashTable<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<int>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> >::rehash(int) 0.2% 0.2% WebCore WebCore::CSSStyleSelector::checkOneSelector(WebCore::CSSSelector*, WebCore::Element*, bool, bool) 0.2% 0.2% JavaScriptCore KJS::FunctionBodyNode::execute(KJS::ExecState*) 0.2% 0.2% WebKit -[NSView(WebHTMLViewFileInternal) _web_addDescendantWebHTMLViewsToArray:] 0.2% 0.2% JavaScriptCore WTF::TCMalloc_Central_FreeList::RemoveRange(void**, void**, int*) 0.2% 0.2% WebCore WebCore::WidthIterator::advance(int, WebCore::GlyphBuffer*) 0.2% 0.2% WebCore WebCore::RenderObject::paintBorder(WebCore::GraphicsContext*, int, int, int, int, WebCore::RenderStyle const*, bool, bool) 0.2% 0.2% WebCore WebCore::RenderBlock::paint(WebCore::RenderObject::PaintInfo&, int, int) 0.2% 0.2% WebCore WebCore::nextCandidate(WebCore::Position const&) 0.2% 0.2% WebCore WebCore::JSNode::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.2% 0.2% WebKit CallDelegate(objc_object* (*)(objc_object*, objc_selector*, ...), WebView*, objc_object*, objc_selector*, objc_object*) 0.2% 0.2% JavaScriptCore WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> > WTF::HashTable<int, int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >::find<int, WTF::IdentityHashTranslator<int, int, WTF::IntHash<int> > >(int const&) 0.2% 0.2% WebCore WebCore::StringImpl::operator NSString*() 0.2% 0.2% WebCore WebCore::StringImpl::create(unsigned short const*, unsigned) 0.2% 0.2% WebCore WebCore::RenderObject::borderLeft() const 0.2% 0.2% WebCore WebCore::PositionIterator::isCandidate() const 0.2% 0.2% WebCore WebCore::Document::nodeChildrenChanged(WebCore::ContainerNode*, WebCore::Node*, WebCore::Node*, int) 0.2% 0.2% WebCore WebCore::CSSStyleSelector::matchRulesForList(WebCore::CSSRuleDataList*, int&, int&) 0.2% 0.2% WebCore WebCore::checkForSiblingStyleChanges(WebCore::Element*, WebCore::RenderStyle*, bool, WebCore::Node*, WebCore::Node*, int) 0.2% 0.2% JavaScriptCore void* KJS::Collector::heapAllocate<(KJS::Collector::HeapType)0>(unsigned long) 0.2% 0.2% WebCore std::pair<WTF::HashTableIteratorAdapter<WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >, WebCore::StringImpl*>, bool> WTF::HashSet<WebCore::StringImpl*, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*> >::add<WebCore::UCharBuffer, WebCore::UCharBufferTranslator>(WebCore::UCharBuffer const&) 0.2% 0.2% JavaScriptCore KJS::UString::UString[not-in-charge](KJS::UString const&, KJS::UString const&) 0.2% 0.2% JavaScriptCore KJS::DateObjectImp::construct(KJS::ExecState*, KJS::List const&) 0.2% 0.2% WebCore WTF::HashMap<WebCore::Node*, WebCore::JSNode*, WTF::PtrHash<WebCore::Node*>, WTF::HashTraits<WebCore::Node*>, WTF::HashTraits<WebCore::JSNode*> >::get(WebCore::Node* const&) const 0.2% 0.2% WebCore WebCore::TextCodecICU::decodeToBuffer(unsigned short*, unsigned short*, char const*&, char const*, int*, bool, UErrorCode&) 0.2% 0.2% WebCore WebCore::safeRemoveFromSuperview(NSView*) 0.2% 0.2% WebCore WebCore::RenderObject::setPrefWidthsDirty(bool, bool) 0.2% 0.2% WebCore WebCore::HTMLTokenizer::processListing(WebCore::SegmentedString, WebCore::HTMLTokenizer::State) 0.2% 0.2% WebCore WebCore::CSSParser::lex() 0.2% 0.2% WebCore WebCore::BitmapImage::draw(WebCore::GraphicsContext*, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::CompositeOperator) 0.2% 0.2% WebCore void WTF::Vector<unsigned short, (unsigned long)0>::append<unsigned short>(unsigned short const*, unsigned long) 0.2% 0.2% JavaScriptCore unsigned long KJS::Collector::sweep<(KJS::Collector::HeapType)0>(bool) 0.2% 0.2% JavaScriptCore match(unsigned short const*, unsigned char const*, int, MatchData&) 0.2% 0.2% JavaScriptCore kjs_dtoa 0.2% 0.2% JavaScriptCore KJS::FunctionCallDotNode::evaluate(KJS::ExecState*) 0.2% 0.2% WebKit -[WebPluginDatabase pluginForKey:withEnumeratorSelector:] 0.2% 0.2% WebKit -[WebHTMLView(WebPrivate) close] 0.1% 0.1% WebCore WebCore::ScrollView::contentsX() const 0.1% 0.1% WebCore WebCore::RenderObject::drawBorder(WebCore::GraphicsContext*, int, int, int, int, WebCore::RenderObject::BorderSide, WebCore::Color, WebCore::Color const&, WebCore::EBorderStyle, int, int) 0.1% 0.1% WebCore WebCore::RenderObject::container() const 0.1% 0.1% WebCore WebCore::RenderBlock::paintObject(WebCore::RenderObject::PaintInfo&, int, int) 0.1% 0.1% WebCore WebCore::RenderBlock::isInlineFlow() const 0.1% 0.1% WebCore WebCore::Position::downstream() const 0.1% 0.1% WebCore WebCore::KURL::parse(char const*, WebCore::String const*) 0.1% 0.1% WebCore WebCore::GraphicsContext::setPlatformStrokeColor(WebCore::Color const&) 0.1% 0.1% WebCore std::pair<WTF::HashTableIterator<WebCore::StringImpl*, std::pair<WebCore::StringImpl*, int>, WTF::PairFirstExtractor<std::pair<WebCore::StringImpl*, int> >, WebCore::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<int> >, WTF::HashTraits<WebCore::StringImpl*> >, bool> WTF::HashTable<WebCore::StringImpl*, std::pair<WebCore::StringImpl*, int>, WTF::PairFirstExtractor<std::pair<WebCore::StringImpl*, int> >, WebCore::CaseFoldingHash, WTF::PairHashTraits<WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<int> >, WTF::HashTraits<WebCore::StringImpl*> >::add<WebCore::StringImpl*, std::pair<WebCore::StringImpl*, int>, WTF::IdentityHashTranslator<WebCore::StringImpl*, std::pair<WebCore::StringImpl*, int>, WebCore::CaseFoldingHash> >(WebCore::StringImpl* const&, std::pair<WebCore::StringImpl*, int> const&) 0.1% 0.1% JavaScriptCore std::pair<WTF::HashTableIterator<int, int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >, bool> WTF::HashTable<int, int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >::add<KJS::ParserRefCounted*, KJS::ParserRefCounted*, WTF::HashSetTranslator<(bool)1, KJS::ParserRefCounted*, WTF::HashTraits<KJS::ParserRefCounted*>, WTF::HashTraits<int>, WTF::PtrHash<KJS::ParserRefCounted*> > >(KJS::ParserRefCounted* const&, KJS::ParserRefCounted* const&) 0.1% 0.1% JavaScriptCore KJS::BlockNode::execute(KJS::ExecState*) 0.1% 0.1% WebCore cssyyparse(void*) 0.1% 0.1% WebKit -[WebHTMLView drawRect:] 0.1% 0.1% JavaScriptCore WTF::TCMalloc_Central_FreeList::ReleaseListToSpans(void*) 0.1% 0.1% JavaScriptCore WTF::HashTableIterator<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<int>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> > WTF::HashTable<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<int>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> >::find<int, WTF::IdentityHashTranslator<int, std::pair<int, int>, WTF::IntHash<int> > >(int const&) 0.1% 0.1% WebCore WebCore::Widget::frameGeometry() const 0.1% 0.1% WebCore WebCore::StringImpl::createStrippingNullCharacters(unsigned short const*, unsigned) 0.1% 0.1% WebCore WebCore::StringImpl::create(char const*) 0.1% 0.1% WebCore WebCore::String::format(char const*, ...) 0.1% 0.1% WebCore WebCore::SimpleFontData::platformInit() 0.1% 0.1% WebCore WebCore::ScrollView::visibleHeight() const 0.1% 0.1% WebCore WebCore::ScrollView::contentsY() const 0.1% 0.1% WebCore WebCore::ResourceResponse::platformLazyInit() 0.1% 0.1% WebCore WebCore::ResourceHandle::start(WebCore::Frame*) 0.1% 0.1% WebCore WebCore::RenderText::calcPrefWidths(int) 0.1% 0.1% WebCore WebCore::RenderStyle::~RenderStyle [not-in-charge]() 0.1% 0.1% WebCore WebCore::RenderObject::setStyle(WebCore::RenderStyle*) 0.1% 0.1% WebCore WebCore::RenderObject::setNeedsLayout(bool, bool) 0.1% 0.1% WebCore WebCore::RenderObject::containingBlock() const 0.1% 0.1% WebCore WebCore::RenderObject::borderTopExtra() const 0.1% 0.1% WebCore WebCore::RenderFlow::continuation() const 0.1% 0.1% WebCore WebCore::RenderBox::paintRootBoxDecorations(WebCore::RenderObject::PaintInfo&, int, int) 0.1% 0.1% WebCore WebCore::RenderBox::paintBoxDecorations(WebCore::RenderObject::PaintInfo&, int, int) 0.1% 0.1% WebCore WebCore::RenderBox::paintBackgroundExtended(WebCore::RenderObject::PaintInfo const&, WebCore::Color const&, WebCore::BackgroundLayer const*, int, int, int, int, int, int, WebCore::InlineFlowBox*) 0.1% 0.1% WebCore WebCore::RenderBlock::layoutInlineChildren(bool, int&, int&) 0.1% 0.1% WebCore WebCore::Node::childNode(unsigned) const 0.1% 0.1% WebCore WebCore::JSHTMLParagraphElement::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSDOMWindow::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::GraphicsContext::setPlatformShadow(WebCore::IntSize const&, int, WebCore::Color const&) 0.1% 0.1% WebCore WebCore::GraphicsContext::platformContext() const 0.1% 0.1% WebCore WebCore::GraphicsContext::drawLineForText(WebCore::IntPoint const&, int, bool) 0.1% 0.1% WebCore WebCore::Font::operator==(WebCore::Font const&) const 0.1% 0.1% WebCore WebCore::Element::removeAttribute(WebCore::String const&, int&) 0.1% 0.1% WebCore WebCore::Element::localName() const 0.1% 0.1% WebCore WebCore::DynamicNodeList::Caches::reset() 0.1% 0.1% WebCore WebCore::ContainerNode::childrenChanged(bool, WebCore::Node*, WebCore::Node*, int) 0.1% 0.1% WebCore WebCore::Color::getRGBA(float&, float&, float&, float&) const 0.1% 0.1% WebCore WebCore::CGColorFromNSColor(NSColor*) 0.1% 0.1% WebCore std::pair<WTF::HashTableIteratorAdapter<WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >, WebCore::StringImpl*>, bool> WTF::HashSet<WebCore::StringImpl*, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*> >::add<WebCore::HashAndCharacters, WebCore::HashAndCharactersTranslator>(WebCore::HashAndCharacters const&) 0.1% 0.1% WebCore std::pair<WTF::HashTableIterator<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >, bool> WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >::add<WebCore::StringImpl*, WebCore::StringImpl*, WTF::HashSetTranslator<(bool)1, WebCore::StringImpl*, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*>, WebCore::StringHash> >(WebCore::StringImpl* const&, WebCore::StringImpl* const&) 0.1% 0.1% WebKit setCursor(NSWindow*, objc_selector*, _NSPoint) 0.1% 0.1% JavaScriptCore KJS::UString::toDouble(bool, bool) const 0.1% 0.1% JavaScriptCore KJS::ScopedVarFunctionCallNode::evaluate(KJS::ExecState*) 0.1% 0.1% JavaScriptCore KJS::PropertyMap::get(KJS::Identifier const&) const 0.1% 0.1% JavaScriptCore KJS::ParserRefCounted::ref() 0.1% 0.1% JavaScriptCore KJS::ParserRefCounted::deref() 0.1% 0.1% JavaScriptCore KJS::JSObject::type() const 0.1% 0.1% JavaScriptCore KJS::JSObject::defaultValue(KJS::ExecState*, KJS::JSType) const 0.1% 0.1% JavaScriptCore KJS::ArgumentListNode::evaluateList(KJS::ExecState*, KJS::List&) 0.1% 0.1% WebKit CallDelegate(objc_object* (*)(objc_object*, objc_selector*, ...), WebView*, objc_object*, objc_selector*, objc_object*, objc_object*) 0.1% 0.1% WebKit -[WebHTMLView(WebInternal) _web_layoutIfNeededRecursive] 0.1% 0.1% WebKit -[WebFrameView(WebInternal) _setDocumentView:] 0.1% 0.1% WebKit -[WebDynamicScrollBarsView(WebInternal) reflectScrolledClipView:] 0.1% 0.1% WebKit -[NSURL(WebNSURLExtras) _webkit_canonicalize] 0.1% 0.1% WebKit -[NSDictionary(WebNSDictionaryExtras) _webkit_objectForMIMEType:] 0.1% 0.1% WebCore WTF::Vector<unsigned short, (unsigned long)0>::reserveCapacity(unsigned long) 0.1% 0.1% JavaScriptCore WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe() 0.1% 0.1% WebCore WTF::HashTableIterator<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> > WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >::find<WebCore::StringImpl*, WTF::IdentityHashTranslator<WebCore::StringImpl*, WebCore::StringImpl*, WebCore::StringHash> >(WebCore::StringImpl* const&) 0.1% 0.1% WebCore WTF::HashTableIterator<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> > WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >::find<WebCore::HashAndCharacters, WTF::HashSetTranslatorAdapter<(bool)1, WebCore::StringImpl*, WTF::HashTraits<WebCore::StringImpl*>, WebCore::HashAndCharacters, WebCore::HashAndCharactersTranslator> >(WebCore::HashAndCharacters const&) 0.1% 0.1% JavaScriptCore WTF::HashTableIterator<KJS::UString::Rep*, KJS::UString::Rep*, WTF::IdentityExtractor<KJS::UString::Rep*>, WTF::StrHash<KJS::UString::Rep*>, WTF::HashTraits<KJS::UString::Rep*>, WTF::HashTraits<KJS::UString::Rep*> > WTF::HashTable<KJS::UString::Rep*, KJS::UString::Rep*, WTF::IdentityExtractor<KJS::UString::Rep*>, WTF::StrHash<KJS::UString::Rep*>, WTF::HashTraits<KJS::UString::Rep*>, WTF::HashTraits<KJS::UString::Rep*> >::find<KJS::UString::Rep*, WTF::IdentityHashTranslator<KJS::UString::Rep*, KJS::UString::Rep*, WTF::StrHash<KJS::UString::Rep*> > >(KJS::UString::Rep* const&) 0.1% 0.1% WebCore WTF::HashTable<WebCore::StringImpl*, WebCore::StringImpl*, WTF::IdentityExtractor<WebCore::StringImpl*>, WebCore::StringHash, WTF::HashTraits<WebCore::StringImpl*>, WTF::HashTraits<WebCore::StringImpl*> >::rehash(int) 0.1% 0.1% WebCore WTF::HashTable<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> >::HashTable[not-in-charge](WTF::HashTable<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<unsigned>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> > const&) 0.1% 0.1% JavaScriptCore WTF::HashTable<int, int, WTF::IdentityExtractor<int>, WTF::IntHash<int>, WTF::HashTraits<int>, WTF::HashTraits<int> >::rehash(int) 0.1% 0.1% WebCore WTF::HashMap<WebCore::Document*, WTF::HashMap<WebCore::Node*, WebCore::JSNode*, WTF::PtrHash<WebCore::Node*>, WTF::HashTraits<WebCore::Node*>, WTF::HashTraits<WebCore::JSNode*> >*, WTF::PtrHash<WebCore::Document*>, WTF::HashTraits<WebCore::Document*>, WTF::HashTraits<WTF::HashMap<WebCore::Node*, WebCore::JSNode*, WTF::PtrHash<WebCore::Node*>, WTF::HashTraits<WebCore::Node*>, WTF::HashTraits<WebCore::JSNode*> >*> >::get(WebCore::Document* const&) const 0.1% 0.1% WebKit WebLocalizedString 0.1% 0.1% WebCore WebCoreShouldUseFontSmoothing 0.1% 0.1% WebCore WebCore::toJS(KJS::ExecState*, WebCore::Node*) 0.1% 0.1% WebCore WebCore::StyleSurroundData::StyleSurroundData[not-in-charge](WebCore::StyleSurroundData const&) 0.1% 0.1% WebCore WebCore::setClip(WebCore::GraphicsContext*, WebCore::IntRect const&, WebCore::IntRect const&) 0.1% 0.1% WebCore WebCore::ScrollView::windowToContents(WebCore::IntPoint const&) const 0.1% 0.1% WebCore WebCore::ScrollView::hScrollbarMode() const 0.1% 0.1% WebCore WebCore::ScrollView::documentView() const 0.1% 0.1% WebCore WebCore::ScrollView::contentsWidth() const 0.1% 0.1% WebCore WebCore::RenderText::destroy() 0.1% 0.1% WebCore WebCore::RenderStyle::hasPseudoStyle(WebCore::RenderStyle::PseudoId) const 0.1% 0.1% WebCore WebCore::RenderStyle::diff(WebCore::RenderStyle const*) const 0.1% 0.1% WebCore WebCore::RenderObject::view() const 0.1% 0.1% WebCore WebCore::RenderObject::paddingTop() const 0.1% 0.1% WebCore WebCore::RenderObject::maximalOutlineSize(WebCore::PaintPhase) const 0.1% 0.1% WebCore WebCore::RenderObject::createObject(WebCore::Node*, WebCore::RenderStyle*) 0.1% 0.1% WebCore WebCore::RenderObject::borderRight() const 0.1% 0.1% WebCore WebCore::RenderObject::borderBottom() const 0.1% 0.1% WebCore WebCore::RenderObject::arenaDelete(WebCore::RenderArena*, void*) 0.1% 0.1% WebCore WebCore::RenderLayer::paintLayer(WebCore::RenderLayer*, WebCore::GraphicsContext*, WebCore::IntRect const&, bool, WebCore::PaintRestriction, WebCore::RenderObject*, bool) 0.1% 0.1% WebCore WebCore::RenderContainer::addChild(WebCore::RenderObject*, WebCore::RenderObject*) 0.1% 0.1% WebCore WebCore::RenderBox::layer() const 0.1% 0.1% WebCore WebCore::RenderBlock::overflowTop(bool) const 0.1% 0.1% WebCore WebCore::RenderBlock::overflowRect(bool) const 0.1% 0.1% WebCore WebCore::RenderBlock::overflowLeft(bool) const 0.1% 0.1% WebCore WebCore::RenderBlock::layout() 0.1% 0.1% WebCore WebCore::RenderBlock::findNextLineBreak(WebCore::BidiResolver<WebCore::BidiIterator, WebCore::BidiRun>&, WebCore::EClear*) 0.1% 0.1% WebCore WebCore::RenderBlock::collapseMargins(WebCore::RenderObject*, WebCore::RenderBlock::MarginInfo&, int) 0.1% 0.1% WebCore WebCore::RenderBlock::addChildToFlow(WebCore::RenderObject*, WebCore::RenderObject*) 0.1% 0.1% WebCore WebCore::RenderArena::allocate(unsigned long) 0.1% 0.1% WebCore WebCore::QualifiedName::QualifiedName[not-in-charge](WebCore::AtomicString const&, WebCore::AtomicString const&, WebCore::AtomicString const&) 0.1% 0.1% WebCore WebCore::Node::virtualHasTagName(WebCore::QualifiedName const&) const 0.1% 0.1% WebCore WebCore::Node::renderStyle() const 0.1% 0.1% WebCore WebCore::Node::ownerDocument() const 0.1% 0.1% WebCore WebCore::Node::notifyNodeListsAttributeChanged() 0.1% 0.1% WebCore WebCore::Node::notifyLocalNodeListsChildrenChanged() 0.1% 0.1% WebCore WebCore::Node::isSVGElement() const 0.1% 0.1% WebCore WebCore::Node::isReadOnlyNode() 0.1% 0.1% WebCore WebCore::NamedAttrMap::length() const 0.1% 0.1% WebCore WebCore::JSNode::getValueProperty(KJS::ExecState*, int) const 0.1% 0.1% WebCore WebCore::JSHTMLDocument::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSElementPrototype::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSElement::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSDOMWindow::customGetOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSDocument::getValueProperty(KJS::ExecState*, int) const 0.1% 0.1% WebCore WebCore::JSDocument::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% WebCore WebCore::JSCharacterData::getValueProperty(KJS::ExecState*, int) const 0.1% 0.1% WebCore WebCore::InlineTextBox::paint(WebCore::RenderObject::PaintInfo&, int, int) 0.1% 0.1% WebCore WebCore::ImageSource::isSizeAvailable() 0.1% 0.1% WebCore WebCore::HTMLInputElement::mapToEntry(WebCore::QualifiedName const&, WebCore::MappedAttributeEntry&) const 0.1% 0.1% WebCore WebCore::GraphicsContext::roundToDevicePixels(WebCore::FloatRect const&) 0.1% 0.1% WebCore WebCore::GlyphWidthMap::widthForGlyph(unsigned short) 0.1% 0.1% WebCore WebCore::Frame::selectionController() const 0.1% 0.1% WebCore WebCore::Frame::loader() const 0.1% 0.1% WebCore WebCore::FontFamily::operator==(WebCore::FontFamily const&) const 0.1% 0.1% WebCore WebCore::Font::glyphDataForCharacter(int, bool, bool) const 0.1% 0.1% WebCore WebCore::endsOfNodeAreVisuallyDistinctPositions(WebCore::Node*) 0.1% 0.1% WebCore WebCore::Element::virtualHasTagName(WebCore::QualifiedName const&) const 0.1% 0.1% WebCore WebCore::Element::nodeType() const 0.1% 0.1% WebCore WebCore::Element::namespaceURI() const 0.1% 0.1% WebCore WebCore::Element::isElementNode() const 0.1% 0.1% WebCore WebCore::DynamicNodeList::length() const 0.1% 0.1% WebCore WebCore::Document::nodeWillBeRemoved(WebCore::Node*) 0.1% 0.1% WebCore WebCore::Document::getElementById(WebCore::AtomicString const&) const 0.1% 0.1% WebCore WebCore::DeprecatedPtrListImplIterator::current() const 0.1% 0.1% WebCore WebCore::CSSStyleSelector::styleForElement(WebCore::Element*, WebCore::RenderStyle*, bool, bool) 0.1% 0.1% WebCore WebCore::CSSStyleSelector::matchRules(WebCore::CSSRuleSet*, int&, int&) 0.1% 0.1% WebCore WebCore::CSSStyleSelector::checkPseudoState(WebCore::Element*, bool) 0.1% 0.1% WebCore WebCore::CSSStyleSelector::adjustRenderStyle(WebCore::RenderStyle*, WebCore::Element*) 0.1% 0.1% WebCore WebCore::CSSPrimitiveValue::cssText() const 0.1% 0.1% WebCore WebCore::CSSPrimitiveValue::computeLengthIntForLength(WebCore::RenderStyle*, double) 0.1% 0.1% WebCore WebCore::CSSPrimitiveValue::computeLengthDouble(WebCore::RenderStyle*, double, bool) 0.1% 0.1% WebCore WebCore::ContainerNode::removeChild(WebCore::Node*, int&) 0.1% 0.1% WebCore WebCore::ContainerNode::attach() 0.1% 0.1% WebCore WebCore::ContainerNode::appendChild(WTF::PassRefPtr<WebCore::Node>, int&) 0.1% 0.1% WebCore WebCore::ClassNames::parseClassAttribute(WebCore::String const&, bool) 0.1% 0.1% WebCore WebCore::CharacterData::rendererIsNeeded(WebCore::RenderStyle*) 0.1% 0.1% WebCore WebCore::CharacterData::offsetInCharacters() const 0.1% 0.1% WebCore WebCore::CachedResource::~CachedResource [not-in-charge]() 0.1% 0.1% WebCore WebCore::bidiNext(WebCore::RenderBlock*, WebCore::RenderObject*, WebCore::BidiResolver<WebCore::BidiIterator, WebCore::BidiRun>*, bool, bool*) 0.1% 0.1% WebCore WebCore::AtomicString::find(KJS::Identifier const&) 0.1% 0.1% WebCore WebCore::AtomicString::add(WebCore::StringImpl*) 0.1% 0.1% WebCore WebCore::AtomicString::add(KJS::UString const&) 0.1% 0.1% JavaScriptCore std::pair<WTF::HashTableIterator<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<int>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> >, bool> WTF::HashTable<int, std::pair<int, int>, WTF::PairFirstExtractor<std::pair<int, int> >, WTF::IntHash<int>, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::HashTraits<int> >::add<KJS::ParserRefCounted*, unsigned, WTF::HashMapTranslator<(bool)1, std::pair<KJS::ParserRefCounted*, unsigned>, WTF::PairBaseHashTraits<WTF::HashTraits<KJS::ParserRefCounted*>, WTF::HashTraits<unsigned> >, WTF::PairHashTraits<WTF::HashTraits<int>, WTF::HashTraits<int> >, WTF::PtrHash<KJS::ParserRefCounted*> > >(KJS::ParserRefCounted* const&, unsigned const&) 0.1% 0.1% JavaScriptCore makeFunctionCallNode(KJS::NodeFeatureInfo<KJS::ExpressionNode*>, KJS::NodeFeatureInfo<KJS::ArgumentsNode*>) 0.1% 0.1% JavaScriptCore KJS::UString::from(int) 0.1% 0.1% JavaScriptCore KJS::UString::from(double) 0.1% 0.1% JavaScriptCore KJS::StringImp::~StringImp [in-charge]() 0.1% 0.1% JavaScriptCore KJS::ScopeNode::optimizeVariableAccess(KJS::ExecState*) 0.1% 0.1% JavaScriptCore KJS::PropertyMap::~PropertyMap [not-in-charge]() 0.1% 0.1% JavaScriptCore KJS::PropertyMap::mark() const 0.1% 0.1% JavaScriptCore KJS::numberProtoFuncToString(KJS::ExecState*, KJS::JSObject*, KJS::List const&) 0.1% 0.1% JavaScriptCore KJS::NumberImp::toString(KJS::ExecState*) const 0.1% 0.1% JavaScriptCore KJS::jsOwnedString(KJS::UString const&) 0.1% 0.1% WebCore KJS::JSObject::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% JavaScriptCore KJS::JSImmediate::toString(KJS::JSValue const*) 0.1% 0.1% JavaScriptCore KJS::JSGlobalObject::getOwnPropertySlot(KJS::ExecState*, KJS::Identifier const&, KJS::PropertySlot&) 0.1% 0.1% JavaScriptCore KJS::FunctionImp::callAsFunction(KJS::ExecState*, KJS::JSObject*, KJS::List const&) 0.1% 0.1% JavaScriptCore KJS::ArrayInstance::getOwnPropertySlot(KJS::ExecState*, unsigned, KJS::PropertySlot&) 0.1% 0.1% JavaScriptCore KJS::ArrayInstance::ArrayInstance[not-in-charge](KJS::JSObject*, unsigned) 0.1% 0.1% JavaScriptCore KJS::ActivationImp::put(KJS::ExecState*, KJS::Identifier const&, KJS::JSValue*) 0.1% 0.1% JavaScriptCore d2b 0.1% 0.1% WebKit -[WebView(WebViewInternal) _objectForIdentifier:] 0.1% 0.1% WebKit -[WebHTMLView(WebHTMLViewFileInternal) _cancelUpdateMouseoverTimer] 0.1% 0.1% WebKit -[WebHTMLView isFlipped] 0.1% 0.1% WebKit -[WebFrameView setFrameSize:] 0.1% 0.1% WebKit -[WebDataSource webFrame]
I don't think this bug is useful anymore.