Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6f9503bb480411badefe27802aff3edc4dc131a9
      
https://github.com/WebKit/WebKit/commit/6f9503bb480411badefe27802aff3edc4dc131a9
  Author: Yusuke Suzuki <[email protected]>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M Source/JavaScriptCore/assembler/AssemblerBuffer.cpp
    M Source/JavaScriptCore/assembler/AssemblerBuffer.h
    M Source/JavaScriptCore/assembler/LinkBuffer.h

  Log Message:
  -----------
  [JSC] Fix thread-local AssemblerBuffer
https://bugs.webkit.org/show_bug.cgi?id=270642
rdar://124221850

Reviewed by Keith Miller.

ARM64EHash broke thread-local AssemblerBuffer mechanism since it took the 
ownership of AssemblerData (not AssemblerBuffer) from MacroAssembler to 
LinkBuffer.
So when destroying AssemblerBuffer, its underlying AssemblerData is always 
zero-sized. This broke thread-local AssemblerBuffer mechanism.
This patch fixes it by

1. Moving thread-local AssemblerData access code from AssemblerBuffer to 
AssemblerData.
2. Tagging AssemblerData with enum class AssemblerDataType to specify which 
thread-local should be used.

* Source/JavaScriptCore/assembler/AssemblerBuffer.cpp:
(JSC::threadSpecificAssemblerHashes):
* Source/JavaScriptCore/assembler/AssemblerBuffer.h:
(JSC::AssemblerDataImpl::AssemblerDataImpl):
(JSC::AssemblerDataImpl::operator=):
(JSC::AssemblerDataImpl::takeBufferIfLarger):
(JSC::AssemblerDataImpl::~AssemblerDataImpl):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::~AssemblerBuffer):
(JSC::AssemblerBuffer::releaseAssemblerHashes):
(JSC::AssemblerData::AssemblerData): Deleted.
(JSC::AssemblerData::operator=): Deleted.
(JSC::AssemblerData::takeBufferIfLarger): Deleted.
(JSC::AssemblerData::~AssemblerData): Deleted.
(JSC::AssemblerData::clear): Deleted.
(JSC::AssemblerData::buffer const): Deleted.
(JSC::AssemblerData::capacity const): Deleted.
(JSC::AssemblerData::grow): Deleted.
(JSC::AssemblerData::isInlineBuffer const): Deleted.
* Source/JavaScriptCore/assembler/LinkBuffer.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to