[webkit-changes] [WebKit/WebKit] 21308f: Switch FontCache to use ThreadSpecific instead of ...

Cameron McCormack noreply at github.com
Wed Oct 26 21:32:21 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 21308fa925b845ce1d059459879ff397e611bb65
      https://github.com/WebKit/WebKit/commit/21308fa925b845ce1d059459879ff397e611bb65
  Author: Cameron McCormack <heycam at apple.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M Source/WebCore/css/CSSFontSelector.cpp
    M Source/WebCore/platform/ThreadGlobalData.cpp
    M Source/WebCore/platform/ThreadGlobalData.h
    M Source/WebCore/platform/graphics/FontCache.cpp
    M Source/WebCore/platform/graphics/FontCache.h
    M Source/WebCore/workers/WorkerOrWorkletThread.cpp

  Log Message:
  -----------
  Switch FontCache to use ThreadSpecific instead of ThreadGlobalData
https://bugs.webkit.org/show_bug.cgi?id=244919

Reviewed by Youenn Fablet.

ThreadGlobalData doesn't handle the case where we try to access it while it's being shut down, and
the font code tries to do that.

ThreadSpecific should be faster, and safe for this case.

* Source/WebCore/css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::~CSSFontSelector):
* Source/WebCore/platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::initializeFontCache): Deleted.
* Source/WebCore/platform/ThreadGlobalData.h:
(WebCore::ThreadGlobalData::fontCache): Deleted.
(WebCore::ThreadGlobalData::fontCacheIfExists): Deleted.
(WebCore::ThreadGlobalData::fontCacheIfNotDestroyed): Deleted.
* Source/WebCore/platform/graphics/FontCache.cpp:
(WebCore::fontCacheForCurrentThread):
(WebCore::FontCache::forCurrentThread):
(WebCore::FontCache::forCurrentThreadIfExists):
(WebCore::FontCache::destroy):
(WebCore::FontCache::forCurrentThreadIfNotDestroyed): Deleted.
* Source/WebCore/platform/graphics/FontCache.h:
* Source/WebCore/workers/WorkerOrWorkletThread.cpp:
(WebCore::WorkerOrWorkletThread::workerOrWorkletThread):

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




More information about the webkit-changes mailing list