gecko-dev/xpcom
Jason Orendorff 26bdfdcc2f Bug 645416, part 3 - Symbol layout and GC support for allocating them. r=terrence.
Layout: js/src/vm/Symbol.h defines the new class JS::Symbol. JS::Symbol is the
same size as JSString on all platforms, because the allocator does not support
smaller allocations.

Allocation: Since the purpose of symbols is to serve as property keys, they are
always allocated in the atoms compartment.

We take a lock when allocating. This could probably be replaced with a
main-thread-only assertion. However, if atom allocation is not already a
bottleneck, symbol allocation probably never will be.

Symbols are given their own finalize-class in the GC. This means we allocate a
page per zone for symbols, even though they are only ever allocated in the
atoms zone. Terrence thought this could be easily fixed later. It should be; we
never touch the page, but a 32-bit virtual address space does not just have
infinite pages to spare.

A jsapi-test exercises the new symbol allocation code. A few oddities in
jsapi-tests are fixed in passing.

Discussion after review led to some new assertions about minimum object size in
AllocateObject and AllocateNonObject.

--HG--
extra : rebase_source : 45abb651d3b1b493d77a5dd0eb554f96b058c63a
2014-06-23 10:55:51 -05:00
..
analysis Bug 973142 - Get rid of the MOZILLA_INTERNAL_API makefile variable; r=glandium 2014-02-18 01:56:51 -05:00
base Bug 645416, part 3 - Symbol layout and GC support for allocating them. r=terrence. 2014-06-23 10:55:51 -05:00
build Bug 1027251: Disable destructor checking on Windows. r=me 2014-06-20 07:33:00 -07:00
components Bug 1016240 - Exterminate CR+LF line endings. r=briansmith,cpearce,ehsan,gavin 2014-06-18 17:56:02 -07:00
doc
ds Bug 1004365 part 3b.1 - Add % operator to TimeDuration; r=froydnj 2014-06-11 14:19:08 +09:00
glue Bug 1016680, part 5 - Report the memory used by PresShell::mCaret. r=dbaron 2014-06-22 23:02:59 +01:00
idl-parser Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
io Bug 902271 - Make StorageInputStream serializable cross-process. r=bent 2014-06-17 11:52:59 +01:00
libxpt/xptcall
reflect Bug 1028633 - Use gcc inline assembly in xptcstubs.cpp for clang-cl; r=bsmedberg 2014-06-23 10:30:02 -07:00
sample Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
string Bug 1010634, Part 2: Fix compiler warnings in MFBT and XPCOM, r=ehsan 2014-05-29 20:18:29 -07:00
system Bug 957928: Gecko Media Plugins implementation. No consumers in Gecko yet. r=bent 2014-05-17 22:05:46 -05:00
tests Bug 1024765 - Part 1: Add test case for timers firing when the target thread is not running. r=bwc 2014-06-17 13:37:04 -07:00
threads Bug 1024765 - Part 2: Make refcounting logic around PostTimerEvent more explicit. r=bz 2014-06-16 14:13:04 -07:00
tools
typelib Bug 996061 - part 0 - make tests use [scriptable] interfaces; r=ted 2014-05-19 12:35:21 -04:00
windbgdlg Bug 933135 - Treat SIMPLE_PROGRAMS more like PROGRAM. r=mshal 2013-11-02 08:43:55 +09:00
xpidl Bug 921816 - Handle idls in --with-libxul-sdk builds. r=gps 2013-11-07 10:37:44 +09:00
Makefile.in Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
moz.build Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
xpcom-config.h.in Backed out changeset 8d8165293e9b (bug 976372) because of Windows debug bustage on a CLOSED TREE 2014-02-24 23:01:54 -05:00
xpcom-private.h.in