зеркало из https://github.com/mozilla/gecko-dev.git
26bdfdcc2f
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 |
||
---|---|---|
.. | ||
analysis | ||
base | ||
build | ||
components | ||
doc | ||
ds | ||
glue | ||
idl-parser | ||
io | ||
libxpt/xptcall | ||
reflect | ||
sample | ||
string | ||
system | ||
tests | ||
threads | ||
tools | ||
typelib | ||
windbgdlg | ||
xpidl | ||
Makefile.in | ||
moz.build | ||
xpcom-config.h.in | ||
xpcom-private.h.in |