gecko-dev/xpcom/ds
Jan Varga 6543a55a77 Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika
nsBaseHashtable now supports non-default-constructible DataType and
UserDataType, however not all methods can be instantiated.  All methods which
can't be instantiated with non-default-constructible DataType or UserDataType
are now described as such in method definitions.

The public API of PLDHashTable and nsBaseHashtable/nsDataHashtable was changed:
- A new method PLDHashTable::WithEntryHandle has been added. It allows to use a
  custom function for entry initialization (instead of the global hook).
- A new method nsBaseHashtable::MaybeGet has been added.
- A new overload nsBaseHashtable::Remove has been added.
- The nsDataHashtable::GetAndRemove method has been pulled up to
  nsBaseHashtable.

In addition, the following implementation details have changed:

PLDHashTable:
- The code from the Add method has been split into MakeEntryHandle and a helper
  object called EntryHandle. The Add method is now implemented on top of that.

nsTHashtable:
- A new (non-public) API for WithEntryHandle has been added.
- The InitEntry hook is no longer used. Instead of using the hook, PutEntry
  methods now use nsTHashtable::WithEntryHandle instead of PLDHashTable::Add.
  This change allows to do custom initialization in derived classes.

nsBaseHashtable:
- A new (non-public) API for WithEntryHandle has been added.
- Put methods no longer use nsTHashtable::PutEntry, they now use the new method
  nsBaseHashtable::WithEntryHandle.

Differential Revision: https://phabricator.services.mozilla.com/D99428
2021-01-29 08:39:40 +00:00
..
test Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
tools Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
ArenaAllocator.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
ArenaAllocatorExtensions.h
ArrayAlgorithm.h Bug 1665614 - Make mozilla::Result work with non-copyable/non-param error types. r=emilio,jandem 2020-09-21 13:12:48 +00:00
ArrayIterator.h
Atom.py Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
AtomArray.h Bug 1684673 - Use an AutoTArray for atom arrays in attributes (class / part). r=smaug 2021-01-04 17:56:33 +00:00
Dafsa.cpp
Dafsa.h
HTMLAtoms.py
IncrementalTokenizer.cpp
IncrementalTokenizer.h
MruCache.h
Observer.h
PLDHashTable.cpp Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika 2021-01-29 08:39:40 +00:00
PLDHashTable.h Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika 2021-01-29 08:39:40 +00:00
PerfectHash.h
SimpleEnumerator.h
StaticAtoms.py Bug 1689034 - part 3: Get rid of keyboard events on plugins r=smaug 2021-01-28 07:48:15 +00:00
StickyTimeDuration.h
Tokenizer.cpp Bug 1679272 - Include ScopeExit.h exactly where used. r=andi 2020-12-07 14:25:59 +00:00
Tokenizer.h
components.conf
moz.build Bug 1654103: Standardize on Black for Python code in `mozilla-central`. 2020-10-26 18:34:53 +00:00
nsArray.cpp
nsArray.h
nsArrayEnumerator.cpp
nsArrayEnumerator.h
nsArrayUtils.cpp
nsArrayUtils.h
nsAtom.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsAtomTable.cpp
nsAtomTable.h
nsBaseHashtable.h Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika 2021-01-29 08:39:40 +00:00
nsCOMArray.cpp
nsCOMArray.h
nsCRT.cpp
nsCRT.h Bug 1685052 - Remove unused functions/macros from nsCRT.h. r=xpcom-reviewers,mccr8 2021-01-05 13:11:28 +00:00
nsCharSeparatedTokenizer.h Bug 1679987 - Implement nsTSubstring::Split using nsTokenizedRange. r=xpcom-reviewers,necko-reviewers,nika 2020-12-17 12:36:47 +00:00
nsCheapSets.h
nsClassHashtable.h
nsDataHashtable.h Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika 2021-01-29 08:39:40 +00:00
nsDeque.cpp
nsDeque.h Bug 1683534 - Make `editor` buildable outside of `unified-build` environment. r=sg 2021-01-04 14:18:50 +00:00
nsEnumeratorUtils.cpp
nsEnumeratorUtils.h
nsExpirationTracker.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsGkAtoms.cpp
nsGkAtoms.h
nsHashKeys.h
nsHashPropertyBag.cpp
nsHashPropertyBag.h
nsIArray.idl
nsIArrayExtensions.idl
nsIINIParser.idl
nsIMutableArray.idl
nsINIParserImpl.cpp
nsINIParserImpl.h
nsIObserver.idl
nsIObserverService.idl
nsIPersistentProperties.h
nsIPersistentProperties2.idl
nsIProperties.idl
nsIProperty.idl
nsIPropertyBag.idl
nsIPropertyBag2.idl
nsISerializable.idl
nsISimpleEnumerator.idl
nsIStringEnumerator.idl
nsISupportsIterators.idl
nsISupportsPrimitives.idl
nsIVariant.idl
nsIWindowsRegKey.idl
nsIWritablePropertyBag.idl
nsIWritablePropertyBag2.idl
nsInterfaceHashtable.h
nsJSThingHashtable.h Bug 1660470 - Add missing include directives/forward declarations. r=nika 2020-11-23 16:21:38 +00:00
nsMathUtils.h
nsObserverList.cpp Bug 1659955 - Replace output parameter by return value in FillObserverArray and rename accordingly. r=froydnj 2020-08-26 07:24:21 +00:00
nsObserverList.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsObserverService.cpp Bug 1667915 - Separate marker category from marker options - r=gregtatum 2020-10-01 11:02:23 +00:00
nsObserverService.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsPersistentProperties.cpp
nsPersistentProperties.h
nsPointerHashKeys.h Bug 1683561 - Make `accessibility` buildable outside of `unified-build` environment. r=sg 2021-01-05 09:47:12 +00:00
nsProperties.cpp
nsProperties.h
nsQuickSort.cpp Bug 1519636 - Reformat with clang-format-11 to the Google coding style r=andi,sg,geckoview-reviewers,snorp 2020-11-18 09:05:59 +00:00
nsQuickSort.h
nsRefPtrHashtable.h
nsSimpleEnumerator.cpp
nsSimpleEnumerator.h
nsStaticAtomUtils.h
nsStaticNameTable.cpp
nsStaticNameTable.h
nsStringEnumerator.cpp
nsStringEnumerator.h
nsSupportsPrimitives.cpp
nsSupportsPrimitives.h
nsTArray-inl.h Bug 1678309 - Type header pointer when shrinking nsTArray storage r=mccr8 2020-11-30 09:30:14 +00:00
nsTArray.cpp Bug 1676363 - Remove dependency of nsTArray on nsCycleCollectionChild. r=#xpcom-reviewers 2020-11-23 16:09:49 +00:00
nsTArray.h Bug 1676363 - Remove dependency of nsTArray on nsCycleCollectionChild. r=#xpcom-reviewers 2020-11-23 16:09:49 +00:00
nsTArrayForwardDeclare.h
nsTHashtable.h Bug 1681469 - Allow nsBaseHashtable to work with a non-default-constructible/non-movable DataType; r=nika 2021-01-29 08:39:40 +00:00
nsTObserverArray.cpp
nsTObserverArray.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsTPriorityQueue.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsVariant.cpp
nsVariant.h
nsWhitespaceTokenizer.h Bug 1678062 - Remove unnecessary includes. r=andi 2020-11-23 16:12:02 +00:00
nsWindowsRegKey.cpp Bug 1684110 - Stop using some 'A'-functions in xpcom/. r=sg 2021-01-04 11:03:31 +00:00
nsWindowsRegKey.h