зеркало из https://github.com/mozilla/gecko-dev.git
e4dec8d42f
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 |
||
---|---|---|
.. | ||
bug656331_component | ||
component | ||
component_no_aslr | ||
external | ||
gtest | ||
regorder | ||
unit | ||
windows | ||
Makefile.in | ||
MoreTestingAtomList.h | ||
MoreTestingAtoms.cpp | ||
MoreTestingAtoms.h | ||
NotXPCOMTest.idl | ||
RegFactory.cpp | ||
ShowAlignments.cpp | ||
SizeTest01.cpp | ||
SizeTest02.cpp | ||
SizeTest03.cpp | ||
SizeTest04.cpp | ||
SizeTest05.cpp | ||
SizeTest06.cpp | ||
TestArguments.cpp | ||
TestAutoPtr.cpp | ||
TestAutoRef.cpp | ||
TestBase64.cpp | ||
TestBlockingProcess.cpp | ||
TestCOMArray.cpp | ||
TestCOMPtr.cpp | ||
TestCOMPtrEq.cpp | ||
TestCallTemplates.cpp | ||
TestDeadlockDetector.cpp | ||
TestDeadlockDetectorScalability.cpp | ||
TestFile.cpp | ||
TestHarness.h | ||
TestHashtables.cpp | ||
TestID.cpp | ||
TestINIParser.cpp | ||
TestJemalloc.cpp | ||
TestNsRefPtr.cpp | ||
TestObserverArray.cpp | ||
TestObserverService.cpp | ||
TestPRIntN.cpp | ||
TestPipe.cpp | ||
TestQuickReturn.cpp | ||
TestRacingServiceManager.cpp | ||
TestRegistrationOrder.cpp | ||
TestSTLWrappers.cpp | ||
TestShutdown.cpp | ||
TestStackCrawl.cpp | ||
TestStaticAtoms.cpp | ||
TestStreamUtils.cpp | ||
TestStringAPI.cpp | ||
TestTArray.cpp | ||
TestTextFormatter.cpp | ||
TestThreadPoolListener.cpp | ||
TestThreadUtils.cpp | ||
TestTimers.cpp | ||
TestUnicodeArguments.cpp | ||
TestWinReg.js | ||
TestingAtomList.h | ||
TestingAtoms.cpp | ||
TestingAtoms.h | ||
moz.build | ||
nsIFileEnumerator.cpp | ||
resources.h | ||
test.properties |