[webkit-changes] [WebKit/WebKit] 03fffa: Further remove HashMap access in RenderObject dest...

Yusuke Suzuki noreply at github.com
Thu May 16 09:08:23 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 03fffab5cdf7bda4716c80bbda085185e7a938da
      https://github.com/WebKit/WebKit/commit/03fffab5cdf7bda4716c80bbda085185e7a938da
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2024-05-16 (Thu, 16 May 2024)

  Changed paths:
    M Source/WebCore/rendering/RenderBoxModelObject.cpp
    M Source/WebCore/rendering/RenderElement.h
    M Source/WebCore/rendering/RenderText.cpp
    M Source/WebCore/rendering/RenderText.h
    M Source/WebCore/rendering/svg/legacy/SVGResourcesCache.cpp

  Log Message:
  -----------
  Further remove HashMap access in RenderObject destructions
https://bugs.webkit.org/show_bug.cgi?id=274239
rdar://128172726

Reviewed by Alan Baradlay.

This patch further removes HashMap access in RenderObject destructions.

1. SVGResourcesCache::cachedResourcesForRenderer was always looking up HashMap! This patch adds boolean flag to RenderElement to stop this behavior.
2. RenderText should have a flag whether it has SecureTextTimer.
3. We use SingleThreadWeakHashMap in ContinuationChainNodeMap and FirstLetterRemainingTextMap and wipe unregistration in RenderBoxModelObject::willBeDestroyed.

* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::willBeDestroyed):
* Source/WebCore/rendering/RenderElement.h:
(WebCore::RenderElement::setHasCachedSVGResource):
(WebCore::RenderElement::hasCachedSVGResource const):
* Source/WebCore/rendering/RenderText.cpp:
(WebCore::RenderText::willBeDestroyed):
(WebCore::RenderText::secureText):
(WebCore::RenderText::momentarilyRevealLastTypedCharacter):
* Source/WebCore/rendering/RenderText.h:
* Source/WebCore/rendering/svg/legacy/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderer):
(WebCore::SVGResourcesCache::removeResourcesFromRenderer):
(WebCore::SVGResourcesCache::cachedResourcesForRenderer):
* Source/WebCore/rendering/svg/legacy/SVGResourcesCache.h:

Canonical link: https://commits.webkit.org/278864@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list