Bug 75423 - Merge CollectionCache into HTMLCollection.
Summary: Merge CollectionCache into HTMLCollection.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Andreas Kling
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-01 16:03 PST by Andreas Kling
Modified: 2012-01-02 00:43 PST (History)
1 user (show)

See Also:


Attachments
Patch (31.21 KB, patch)
2012-01-01 16:22 PST, Andreas Kling
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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>