gecko-dev/mfbt
Nika Layzell 18f7866fc2 Bug 1738106 - Part 2: Allow XPCOM classes to use SupportsThreadSafeWeakPtr, r=glandium,xpcom-reviewers
Due to how this type of threadsafe refcounting is implemented, it needs to be
implemented using a MFBT-style refcounting base class, somewhat similar to
`SupportsWeakPtr`.

This patch makes NS_IMPL_{ADDREF,RELEASE}_INHERITED intelligently not add
refcount logging for types inheriting from SupportsThreadSafeWeakPtr, as the
default behaviour would break due to weak pointer upgrades not calling through
`AddRef` or `Release`.

In MFBT, the return value of `AddRef` and `Release` on
SupportsThreadSafeWeakPtr is changed to be compatible with nsISupports, so that
this type can be used to implement nsISupports refcounting.

Differential Revision: https://phabricator.services.mozilla.com/D142603
2022-05-02 20:37:34 +00:00
..
double-conversion Bug 1745118 - double-conversion: add MOZ_CRASH reasons to use-mozilla-assertions.patch. r=glandium 2021-12-22 04:34:13 +00:00
lz4 Bug 1743896 - Update xxHash to version 0.8.1. r=dthayer 2021-12-02 01:53:56 +00:00
tests Bug 1758702 - Allow ThreadSafeWeakPtr<IncompleteType> to work. r=glandium 2022-03-17 15:24:40 +00:00
Algorithm.h
Alignment.h
AllocPolicy.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
AlreadyAddRefed.h Bug 1729598 - Replace MOZ_MUST_USE_TYPE with [[nodiscard]]. r=static-analysis-reviewers,andi 2021-09-15 05:10:51 +00:00
Array.h Bug 1733963 - Part 1: Make BitSet work as storage for EnumSet. r=glandium 2021-11-09 12:34:51 +00:00
ArrayUtils.h
Assertions.cpp Bug 1624717 - Copy release mode bounds checking from nsTArray to Array r=glandium 2021-09-09 13:29:18 +00:00
Assertions.h Bug 1748969 - Move definition of MOZ_DIAGNOSTIC_ASSERT_ENABLED to configure. r=emilio 2022-01-07 21:24:44 +00:00
AtomicBitfields.h Bug 1701879 part 5 - Add stub atomics implementation for WASI. r=wingo,glandium 2021-04-20 05:15:28 +00:00
Atomics.h Bug 1701879 part 5 - Add stub atomics implementation for WASI. r=wingo,glandium 2021-04-20 05:15:28 +00:00
Attributes.h Bug 1762537 - Omit some annotations when compiling under sixgill to avoid incompatibilities between what clang and gcc allow for lambda annotations r=firefox-static-analysis-reviewers,andi 2022-04-15 15:43:10 +00:00
BinarySearch.h Bug 1695817 - Part 5: Add std::equal_range equivalent in MFBT. r=glandium 2021-05-28 22:35:58 +00:00
BitSet.h Bug 1733963 - Part 1: Make BitSet work as storage for EnumSet. r=glandium 2021-11-09 12:34:51 +00:00
BloomFilter.h Bug 1690274 - Part 2: Add mozilla::BitBloomFilter. r=sg 2021-02-16 22:07:05 +00:00
Buffer.h
BufferList.h Bug 1440727 - Disallow extra data at the end of serialized data buffer r=decoder,jonco 2022-04-22 03:08:47 +00:00
Casting.h
ChaosMode.cpp
ChaosMode.h
Char16.h Bug 1766549 - Remove some char16ptr_t operators that allow implicit const-casting. r=nika 2022-04-27 22:28:24 +00:00
CheckedInt.h Bug 1743012 - Add missing constexpr qualifiers in CheckedInt, r=glandium 2021-11-26 19:18:49 +00:00
CompactPair.h Bug 1601556 - Make Result<V, E> a literal type if V and E are literal types and PackingStrategy is not Variant. r=emilio 2021-03-23 12:35:19 +00:00
Compiler.h
Compression.cpp
Compression.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
DbgMacro.h
DebugOnly.h
DefineEnum.h
DoublyLinkedList.h
EndianUtils.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
EnumeratedArray.h
EnumeratedRange.h Bug 1730774 part 1: Give EnumeratedRange.h an include for Assertions.h, since it includes MOZ_ASSERT statements. r=TYLin 2021-09-14 22:06:22 +00:00
EnumSet.h Bug 1733963 - Part 1: Make BitSet work as storage for EnumSet. r=glandium 2021-11-09 12:34:51 +00:00
EnumTypeTraits.h
fallible.h
FastBernoulliTrial.h
FloatingPoint.cpp
FloatingPoint.h Bug 1701942 - Use bitwise equality for font variation value comparisons. r=jfkthame 2021-04-02 12:37:23 +00:00
FStream.h
FunctionRef.h
FunctionTypeTraits.h
Fuzzing.h Bug 1764259 - [Fuzzing] Nyx replay mode. r=truber 2022-04-14 12:10:14 +00:00
HashFunctions.cpp Bug 1719396: Don't hash sizeof(size_t) in HashBytes r=glandium 2021-07-19 21:35:40 +00:00
HashFunctions.h Bug 1341265 - Part 11: Optimise Set.prototype.has for objects in CacheIR. r=iain 2021-08-10 09:55:22 +00:00
HashTable.h Bug 1706900 part 6 - Replace ShapeTable's custom hash table with a HashSet. r=jonco 2021-04-26 11:00:06 +00:00
HelperMacros.h
InitializedOnce.h
IntegerRange.h
IntegerTypeTraits.h
JSONWriter.cpp
JSONWriter.h
JsRust.h
Latin1.h
Likely.h
LinkedList.h Bug 1750791 - Part 1: Add LinkedList::mergeBack and LinkedList::splice. r=glandium 2022-02-24 15:00:27 +00:00
MacroArgs.h
MacroForEach.h
MathAlgorithms.h Bug 1735715 - Handle gMaxSubPageClass == 0 properly r=glandium 2021-10-21 06:03:45 +00:00
Maybe.h Bug 1207753 - Base thread-safety attribution support r=nika 2022-03-16 23:01:41 +00:00
MaybeOneOf.h Bug 1766276 - Give MaybeOneOf a map method r=jandem 2022-04-26 12:29:24 +00:00
MaybeStorageBase.h Bug 1700336 - Use MaybeStorageBase in Maybe. r=emilio 2021-03-24 13:21:31 +00:00
MemoryChecking.h
MemoryReporting.h
moz.build Bug 1207753 - Base thread-safety attribution support r=nika 2022-03-16 23:01:41 +00:00
NonDereferenceable.h
NotNull.h Bug 1685677 - Extract functions from CheckTemporaryStorageLimits and rename it to CleanupTemporaryStorage. r=dom-workers-and-storage-reviewers,janv 2021-02-02 17:46:40 +00:00
Opaque.h
OperatorNewExtensions.h
PairHash.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
Path.h
PodOperations.h
Poison.cpp Bug 1701620 part 4 - Fix memory support for WASI. r=jandem,sfink 2021-04-13 08:25:10 +00:00
Poison.h
RandomNum.cpp Bug 1723674 - mfbt: Add new GenerateRandomBytes() function. r=cmartin 2021-10-14 03:28:48 +00:00
RandomNum.h Bug 1723674 - mfbt: Add new GenerateRandomBytes() function. r=cmartin 2021-10-14 03:28:48 +00:00
Range.h
RangedArray.h
RangedPtr.h
ReentrancyGuard.h
RefCounted.h Bug 1746540 - Move --enable-logrefcnt to python configure. r=nika,firefox-build-system-reviewers,mhentges 2021-12-18 00:32:35 +00:00
RefCountType.h
RefPtr.h Bug 1710145 - Deduction guide RefPtr(already_AddRefed<T>) -> RefPtr<T> - r=kmag 2021-05-11 21:55:21 +00:00
Result.h Bug 1750310 - Centralize and reuse pixelstorei pack/unpack handling. r=lsalzman 2022-02-12 02:20:42 +00:00
ResultExtensions.h Bug 1732642 - Handle complex types in MOZ_TO_RESULT_INVOKE_MEMBER_TYPED; r=dom-storage-reviewers,jari 2021-11-30 05:05:53 +00:00
ResultVariant.h Bug 1601556 - Make Result<V, E> a literal type if V and E are literal types and PackingStrategy is not Variant. r=emilio 2021-03-23 12:35:19 +00:00
ReverseIterator.h
RollingMean.h Bug 1666487 - Constify some RollingMean getters. r=glandium 2021-02-11 13:38:48 +00:00
Saturate.h
Scoped.h
ScopeExit.h Bug 1725572 - Part 1: Support move-only closures in ScopeExit, r=glandium 2021-09-23 18:54:31 +00:00
SegmentedVector.h Bug 1730534 - Part 1: Assert state of SegmentedVector iterator is valid r=mccr8 2021-09-27 16:41:51 +00:00
SHA1.cpp
SHA1.h
SharedLibrary.h
SmallPointerArray.h
Span.h Bug 1761536 - Part 2: Replace nsTArray::elem_type with value_type, r=mccr8 2022-04-01 17:00:25 +00:00
SplayTree.h
SPSCQueue.h Bug 1238038 - Create an input-only audio source r=padenot 2022-04-18 18:45:35 +00:00
StaticAnalysisFunctions.h Bug 1699844 - Add an escape hatch for the refcounted inside lambda checker. r=andi 2021-04-14 19:12:02 +00:00
STYLE
TaggedAnonymousMemory.cpp
TaggedAnonymousMemory.h Bug 1701620 part 4 - Fix memory support for WASI. r=jandem,sfink 2021-04-13 08:25:10 +00:00
Tainting.h
TemplateLib.h
TextUtils.h
ThreadLocal.h Bug 1701613 part 3 - Add stub thread implementation for WASI. r=jandem,wingo 2021-04-08 08:02:16 +00:00
ThreadSafety.h Bug 1760357 - Part 6: Don't generate thread safety annotations on clang < 8.0, r=jesup 2022-03-22 14:59:42 +00:00
ThreadSafeWeakPtr.h Bug 1738106 - Part 2: Allow XPCOM classes to use SupportsThreadSafeWeakPtr, r=glandium,xpcom-reviewers 2022-05-02 20:37:34 +00:00
ToString.h
TsanOptions.h
Tuple.h
TypedEnumBits.h
Types.h
TypeTraits.h
UniquePtr.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
UniquePtrExtensions.cpp
UniquePtrExtensions.h Bug 1734735 - Part 2: Support getter_Transfers with non-pointer UniquePtr types, r=glandium 2021-11-23 16:15:21 +00:00
Unused.cpp
Unused.h
Utf8.cpp
Utf8.h Bug 1742115 - Fix UnsafeConvertValidUtf8toUtf16 to wrap the correct Rust implementation. r=hsivonen 2021-11-19 18:57:44 +00:00
Variant.h Bug 1719959 - Better Tag type choice, fixed corresponding test - r=emilio 2021-07-11 09:43:50 +00:00
Vector.h Bug 1571631 - Replace MOZ_MUST_USE with [[nodiscard]] in mfbt. r=sg 2021-03-17 03:01:21 +00:00
WasiAtomic.h Bug 1758780 - Fallthrough to <atomic> for wasi when using clang >= 14. r=nika 2022-04-13 03:02:24 +00:00
WeakPtr.h
WindowsVersion.h Bug 1722208 - Fix automatically displaying the on-screen keyboard on Windows 11 when running on convertible slates r=cmartin 2021-10-28 21:08:12 +00:00
WrappingOperations.h
XorShift128PlusRNG.h