gecko-dev/js/public
Nicholas Nethercote 256a1f168b Bug 1038601 - Shrink js::HashTable. r=luke.
This patch reduces sizeof(js::HashTable):
- On 64-bit: from 32 bytes to 24 bytes.
- On 32-bit: from 24 bytes to 16 bytes.

The latter is particularly nice because jemalloc rounds up allocation requests
of 24 bytes to 32, but it can allocate 16 bytes without slop, so we're saving
16 bytes per heap-allocated HashTable.

This is done by:
- Shrinking |removedCount| and |hashShift|.
- Reordering the fields.
- Not defining |mutationCount| and |mEntered| in non-DEBUG builds rather than
  using DebugOnly<> -- in non-DEBUG builds, DebugOnly<> fields take up 1 byte
  each.

This change saves over 55 KiB when starting Firefox and loading Gmail.

The patch also uses uint32_t more consistently for the generation.

--HG--
extra : rebase_source : 8bdfbfe40f233711433bd9b7a2b5a19d69beacc7
2014-07-16 16:51:09 -07:00
..
Anchor.h Bug 943839 - Simplify Anchor and get rid of JS_AnchorPtr. r=terrence 2013-12-02 15:43:30 -08:00
CallArgs.h Bug 952650 (part 13) - Remove JSVAL_IS_PRIMITIVE. r=till. 2014-04-27 20:27:54 -07:00
CallNonGenericMethod.h Bug 964016 - Part 4: Replace JS_ALWAYS_INLINE with MOZ_ALWAYS_INLINE. r=luke 2014-01-24 20:14:56 -08:00
CharacterEncoding.h Bug 1034627 part 7 - Cleanup and expose UTF8 conversion functions. r=terrence 2014-07-11 16:22:37 +02:00
Class.h Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
Date.h Bug 883697 (part 1) - Make include guards consistent in js/ductwork/, js/ipc/ and js/public/. r=njn. 2013-06-19 17:59:09 -07:00
GCAPI.h Backed out changeset aca2ec2457ec (bug 1016738) for re-introducing frequent WebRTC crashes. 2014-06-17 21:12:43 -04:00
HashTable.h Bug 1038601 - Shrink js::HashTable. r=luke. 2014-07-16 16:51:09 -07:00
HeapAPI.h Bug 1038274 - Really fix previous problem with landing r=me 2014-07-16 12:04:33 +01:00
Id.h Bug 645416, part 21 - Add symbol jsids (SYMBOL_TO_JSID), removing the legacy support for object jsids (OBJECT_TO_JSID). r=terrence,r=jimb,r=efaust. 2014-06-23 10:56:52 -05:00
LegacyIntTypes.h Bug 872127 - Part 1: Remove support for MOZ_CUSTOM_STDINT_H; r=Waldo,ted 2013-07-30 10:24:49 -04:00
MemoryMetrics.h Bug 1037886 - Report Latin1 and TwoByte strings separately in about:memory. r=njn 2014-07-16 19:11:50 +02:00
OldDebugAPI.h Bug 857648 part 6. Remove the now-unused JS::DescribeStack API. r=jimb 2014-07-04 01:25:30 -04:00
Principals.h Bug 969273: Move JSPrincipals-related types and functions to their own header. r=mrbkap 2014-03-07 11:50:41 -08:00
ProfilingStack.h Bug 1017790 - Expose category information in the profiler data, r=djvj 2014-06-04 14:37:49 -04:00
PropertyKey.h Bug 911020 - Introduce js/TypeDecls.h, which holds very commonly used type declarations from the JS engine. r=luke. 2013-08-27 19:59:14 -07:00
RequiredDefines.h Bug 956601 - Add Char16.h to RequiredDefines.h so that SpiderMonkey standalone works again, in compilers without native char16_t support. r=sstangl 2014-01-05 18:05:11 -06:00
RootingAPI.h Bug 1036780 - Replace MOZ_ASSUME_UNREACHABLE with MOZ_CRASH in js/src/gc. r=terrence 2014-06-29 23:05:34 -07:00
SliceBudget.h Bug 1013663 - Fix some bad implicit conversion constructors in the JS engine; r=jorendorff,jandem 2014-05-25 21:46:24 -04:00
StructuredClone.h Bug 1027528 part 15 - Make structured clone work with Latin1 strings. r=jorendorff,bent 2014-06-25 08:05:41 +02:00
TracingAPI.h Bug 807168 - Make JSTracer into a real C++ class and kill the macro accessors; r=jonco,mccr8 2014-04-11 15:19:05 -07:00
TypeDecls.h Bug 645416, part 3 - Symbol layout and GC support for allocating them. r=terrence. 2014-06-23 10:55:51 -05:00
UbiNode.h Bug 960786: SpiderMonkey should provide an introspection API for memory heap analysis (ubi::Node) r=sfink 2014-06-16 15:18:57 -07:00
UbiNodeTraverse.h Bug 960786: SpiderMonkey should provide an introspection API for memory heap analysis (ubi::Node) r=sfink 2014-06-16 15:18:57 -07:00
Utility.h Bug 1037106 - Use UniquePtr to manage ownership of the Debugger C++ class instance created for a new Debugger object, until it can be stored in the Debugger object's private slot (and owned by it). r=jimb, r=luke 2014-07-09 17:58:43 -07:00
Value.h Bug 1030400 - Add sym to the 32 bit big endian branch. r=jorendorff 2014-06-25 18:48:00 +02:00
Vector.h Bug 1013663 - Fix some bad implicit conversion constructors in the JS engine; r=jorendorff,jandem 2014-05-25 21:46:24 -04:00
WeakMapPtr.h Bug 981809 - Postbarrier WeakMapPtr keys, r=terrence 2014-03-13 13:53:34 -07:00