Bug 75423

Summary: Merge CollectionCache into HTMLCollection.
Product: WebKit Reporter: Andreas Kling <kling>
Component: DOMAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: atwilson
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Andreas Kling 2012-01-01 16:03:07 PST
Now that HTMLCollection and CollectionCache have a 1-to-1 relationship, we should just merge them and avoid the malloc overhead.
Comment 1 Andreas Kling 2012-01-01 16:22:07 PST
Created attachment 120851 [details]
Patch
Comment 2 Andreas Kling 2012-01-01 16:38:09 PST
Comment on attachment 120851 [details]
Patch

Clearing flags on attachment: 120851

Committed r103888: <http://trac.webkit.org/changeset/103888>
Comment 3 Andreas Kling 2012-01-01 16:38:17 PST
All reviewed patches have been landed.  Closing bug.
Comment 4 Andrew Wilson 2012-01-01 22:43:42 PST
I'm seeing valgrind errors on the chromium bots that seem to be a result of this patch - should we roll it out, or do you have a fix?


UninitCondition
Conditional jump or move depends on uninitialised value(s)
  WebCore::HTMLCollection::invalidateCacheIfNeeded() const (third_party/WebKit/Source/WebCore/html/HTMLCollection.cpp:98)
  WebCore::HTMLCollection::length() const (third_party/WebKit/Source/WebCore/html/HTMLCollection.cpp:206)
  WebKit::WebDocument::forms(WebKit::WebVector<WebKit::WebFormElement>&) const (third_party/WebKit/Source/WebKit/chromium/src/WebDocument.cpp:144)
  autofill::PasswordAutofillManager::SendPasswordForms(WebKit::WebFrame*, bool) (chrome/renderer/autofill/password_autofill_manager.cc:343)
  autofill::PasswordAutofillManager::DidFinishDocumentLoad(WebKit::WebFrame*) (chrome/renderer/autofill/password_autofill_manager.cc:381)
  RenderViewImpl::didFinishDocumentLoad(WebKit::WebFrame*) (content/renderer/render_view_impl.cc:2661)
  WebKit::FrameLoaderClientImpl::dispatchDidFinishDocumentLoad() (third_party/WebKit/Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp:451)
  WebCore::FrameLoader::finishedParsing() (third_party/WebKit/Source/WebCore/loader/FrameLoader.cpp:672)
  WebCore::Document::finishedParsing() (third_party/WebKit/Source/WebCore/dom/Document.cpp:4300)
  WebCore::HTMLTreeBuilder::finished() (third_party/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2817)
  WebCore::HTMLDocumentParser::end() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:381)
  WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:390)
  WebCore::HTMLDocumentParser::prepareToStopParsing() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:153)
  WebCore::HTMLDocumentParser::endIfDelayed() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:415)
  WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:476)
  WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets() (third_party/WebKit/Source/WebCore/html/parser/HTMLDocumentParser.cpp:546)
  WebCore::Document::removePendingSheet() (third_party/WebKit/Source/WebCore/dom/Document.cpp:2956)
  WebCore::HTMLLinkElement::removePendingSheet() (third_party/WebKit/Source/WebCore/html/HTMLLinkElement.cpp:438)
  WebCore::HTMLLinkElement::sheetLoaded() (third_party/WebKit/Source/WebCore/html/HTMLLinkElement.cpp:358)
  WebCore::CSSStyleSheet::checkLoaded() (third_party/WebKit/Source/WebCore/css/CSSStyleSheet.cpp:240)
  WebCore::HTMLLinkElement::setCSSStyleSheet(WTF::String const&, WebCore::KURL const&, WTF::String const&, WebCore::CachedCSSStyleSheet const*) (third_party/WebKit/Source/WebCore/html/HTMLLinkElement.cpp:333)
  WebCore::CachedCSSStyleSheet::checkNotify() (third_party/WebKit/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp:117)
  WebCore::CachedCSSStyleSheet::data(WTF::PassRefPtr<WebCore::SharedBuffer>, bool) (third_party/WebKit/Source/WebCore/loader/cache/CachedCSSStyleSheet.cpp:105)
  WebCore::SubresourceLoader::didFinishLoading(double) (third_party/WebKit/Source/WebCore/loader/SubresourceLoader.cpp:259)
  WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) (third_party/WebKit/Source/WebCore/loader/ResourceLoader.cpp:451)
  WebCore::ResourceHandleInternal::didFinishLoading(WebKit::WebURLLoader*, double) (third_party/WebKit/Source/WebKit/chromium/src/ResourceHandle.cpp:158)
  webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest(net::URLRequestStatus const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, base::TimeTicks const&) (webkit/glue/weburlloader_impl.cc:647)
  ResourceDispatcher::OnRequestComplete(int, net::URLRequestStatus const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, base::TimeTicks const&) (content/common/resource_dispatcher.cc:488)
Comment 5 Andreas Kling 2012-01-01 22:59:24 PST
(In reply to comment #4)
> I'm seeing valgrind errors on the chromium bots that seem to be a result of this patch - should we roll it out, or do you have a fix?

I'll fix it!
Comment 6 Andreas Kling 2012-01-02 00:43:03 PST
Committed r103893: <http://trac.webkit.org/changeset/103893>