gecko-dev/xpcom/ds
Nicholas Nethercote e4dec8d42f Bug 1261735 (part 1) - Overhaul the atom implementation. r=froydnj,erahm.
This patch changes things so that dynamic atoms and static atoms have distinct
implementations. This is a step towards allowing dynamic atoms and static atoms
to have different layouts in memory, which will allow static atoms to be
represented more compactly.

Specifically, the patch does the following.

- It renames AtomImpl as DynamicAtom and PermanentAtomImpl as StaticAtom, and
  the latter is no longer a subclass of the former. This required duplicating
  some methods from the former into the latter: ScriptableToString(),
  ToUTF8String(), ScriptableEquals(), IsStaticAtom(). (This duplication will
  disappear in the future if the representations of dynamic atoms and static
  atoms diverge. Indeed, SizeOfIncludingThis() is already different in the two
  classes.)

- It replaces all mentions of "permanent"/"non-permanent" atoms with
  "static"/"dynamic".

- In ~DynamicAtom() it removes the check that causes gAtomTable to be deleted
  when it becomes empty. This will only happen at shutdown and so doesn't seem
  useful.

- It documents better various things, especially the basics of the
  dynamic/static split, the transmutation of dynamic atoms to static atoms, and
  the details of the SizeOf functions.

--HG--
extra : rebase_source : dbf903012e70ebf1a43de1e1088db1bc1b8dd4f4
2016-04-01 11:18:06 +11:00
..
StickyTimeDuration.h Bug 1249212 part 2 - Fix infinity handling in StickyTimeDurationValueCalculator::Multiply; r=froydnj 2016-02-19 08:37:31 +09:00
Tokenizer.cpp Bug 241788 - mozilla::Tokenizer - token type for \n should whitespace if given in constructor r=honzab 2016-02-05 14:43:45 +01:00
Tokenizer.h Bug 1199775 - mozilla::Tokenizer improvements vol 2. r=nfroyd 2015-09-02 06:20:00 +02:00
moz.build Bug 1204403 - Fix -Wshadow warnings in xpcom. r=mccr8 2015-09-07 23:56:16 -07:00
nsArray.cpp
nsArray.h
nsAtomService.cpp Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
nsAtomService.h
nsAtomTable.cpp Bug 1261735 (part 1) - Overhaul the atom implementation. r=froydnj,erahm. 2016-04-01 11:18:06 +11:00
nsAtomTable.h
nsCRT.cpp
nsCRT.h
nsCharSeparatedTokenizer.h
nsCheapSets.h Bug 1220035 - Fix -Wimplicit-fallthrough warnings in xpcom. r=mccr8 2015-10-29 21:31:32 -07:00
nsExpirationTracker.h Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
nsHashPropertyBag.cpp Bug 1185470: Remove 'Get' prefixes from hashtable iterator methods. r=froydnj 2015-07-20 20:21:28 +08:00
nsHashPropertyBag.h
nsIArray.idl
nsIAtom.idl Bug 1261735 (part 1) - Overhaul the atom implementation. r=froydnj,erahm. 2016-04-01 11:18:06 +11:00
nsIAtomService.idl Bug 1260871 - Remove do_GetAtom() and rename NS_NewAtom() as NS_Atomize(). r=erahm. 2016-03-29 10:09:43 +11:00
nsICollection.idl
nsIEnumerator.idl
nsIHashable.idl
nsIINIParser.idl
nsIMutableArray.idl
nsINIParserImpl.cpp Bug 1225923 - part 1 - convert all needs-to-copy instances of AppendElement(nsDependentString(...)); r=erahm 2015-11-18 10:25:19 -05:00
nsINIParserImpl.h
nsINIProcessor.js Bug 1248252 - Improper outdated octal constant syntax in M-C tree. Use '0o' prefix. r=dao 2016-02-15 08:57:00 +01:00
nsINIProcessor.manifest
nsIObserver.idl
nsIObserverService.idl
nsIPersistentProperties.h
nsIPersistentProperties2.idl
nsIProperties.idl
nsIProperty.idl
nsIPropertyBag.idl
nsIPropertyBag2.idl
nsISerializable.idl
nsISimpleEnumerator.idl
nsIStringEnumerator.idl
nsISupportsArray.idl
nsISupportsIterators.idl
nsISupportsPrimitives.idl
nsIVariant.idl
nsIWindowsRegKey.idl
nsIWritablePropertyBag.idl
nsIWritablePropertyBag2.idl
nsMathUtils.h Bug 1228947 - Replace mfbt/Constants.h with math.h. r=roc 2015-11-27 20:49:55 -08:00
nsObserverList.cpp Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
nsObserverList.h
nsObserverService.cpp Bug 1251482 - Remove remaining references to MOZILLA_XPCOMRT_API from xpcom. r=froydnj 2016-02-26 18:10:56 -08:00
nsObserverService.h Bug 1181445 (part 3) - Use nsTHashTable::Iterator in nsObserverService. r=froydnj. 2015-07-09 16:49:32 -07:00
nsPersistentProperties.cpp Bug 1237668 - Remove nsSimpleUnicharStreamFactory r=froydnj 2016-01-11 19:31:29 -05:00
nsPersistentProperties.h Bug 1201135 - Rename pldhash.{h,cpp} to PLDHashTable.{h,cpp}. r=mccr8. 2015-09-15 20:49:53 -07:00
nsProperties.cpp Bug 1185470: Remove 'Get' prefixes from hashtable iterator methods. r=froydnj 2015-07-20 20:21:28 +08:00
nsProperties.h
nsStaticAtom.h Bug 1255343 - Stop returning nsresult from NS_RegisterStaticAtoms; r=ehsan 2016-03-18 09:03:43 +01:00
nsStaticNameTable.cpp Bug 1253085 - Remove the |PLDHashTable*| argument from PLDHash{HashKey,MatchEntry}. r=froydnj. 2016-03-16 15:33:44 +11:00
nsStaticNameTable.h Bug 1201135 - Rename pldhash.{h,cpp} to PLDHashTable.{h,cpp}. r=mccr8. 2015-09-15 20:49:53 -07:00
nsStringEnumerator.cpp
nsStringEnumerator.h
nsSupportsArray.cpp Bug 1193564 - Check result of Read32 in nsSupportsArray::Read. r=erahm 2015-08-13 14:24:59 -07:00
nsSupportsArray.h
nsSupportsArrayEnumerator.cpp
nsSupportsArrayEnumerator.h
nsSupportsPrimitives.cpp Bug 1201287 - Cleanup nsSupportsPrimitives.cpp. r=smaug 2015-09-06 19:53:33 +03:00
nsSupportsPrimitives.h
nsVariant.cpp Bug 1220035 - Fix -Wimplicit-fallthrough warnings in xpcom. r=mccr8 2015-10-29 21:31:32 -07:00
nsVariant.h Bug 931283, part 3 - Implement a cycle collected version of nsVariant. r=froydnj 2015-10-09 10:24:23 -07:00
nsWhitespaceTokenizer.h
nsWindowsRegKey.cpp Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat 2015-10-18 01:24:48 -04:00
nsWindowsRegKey.h