Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3589dd6fe56969756161494cf76b92588a1e841b
      
https://github.com/WebKit/WebKit/commit/3589dd6fe56969756161494cf76b92588a1e841b
  Author: Mark Lam <mark....@apple.com>
  Date:   2023-01-24 (Tue, 24 Jan 2023)

  Changed paths:
    M Source/JavaScriptCore/heap/IsoCellSetInlines.h
    M Source/WTF/wtf/Atomics.h
    M Source/WTF/wtf/Bitmap.h

  Log Message:
  -----------
  Fix IsoCellSet::remove()'s return value.
https://bugs.webkit.org/show_bug.cgi?id=251071
<rdar://problem/104590361>

Reviewed by Yusuke Suzuki.

In https://bugs.webkit.org/show_bug.cgi?id=250847, Yijia Huang found a bug in
Bitmap::concurrentTestAndClear() where it's returning the inverse of its 
expected
result.  Checking for all uses of concurrentTestAndClear(), we find that one
result of IsoCellSet::remove() is also similarly incorrect.

This patch fixes these errors, and also adds comments to document the intended
return values of some relevant functions, as well as the reasoning behind how
some of the return values are computed.

Note: currently, the result of Bitmap::concurrentTestAndClear() only impacts
the return value of IsoCellSet::remove(), and, in turn, the return value of
IsoCellSet::remove() is not used anywhere.  Hence, these bugs do not currently
cause any harm.  However, it is good to fix them just for correctness and to
avoid potential future issues should we start using their return values in a
meaningful way.

* Source/JavaScriptCore/heap/IsoCellSetInlines.h:
(JSC::IsoCellSet::add):
(JSC::IsoCellSet::remove):
* Source/WTF/wtf/Atomics.h:
* Source/WTF/wtf/Bitmap.h:
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to