Commit Graph

165 Commits

Author SHA1 Message Date
Jan de Mooij
87bf19401f Bug 1350760 part 6 - Add a Zone cache for recently atomized strings. r=jonco 2017-03-31 10:54:16 +02:00
Jan de Mooij
1ae97de3f1 Bug 1350760 part 5 - Make sure various hashtable lookups get inlined when atomizing strings. r=luke 2017-03-31 10:53:39 +02:00
Jeff Walden
d33e8613b2 Bug 1246061 - Add some comments. r=luke 2016-03-23 13:21:02 -07:00
Jon Coppeard
a8f38ffade Bug 1260785 - Make hashcode generation fallible for cell pointers that can be moved by GC r=terrence 2016-07-13 10:20:00 +01:00
Jan de Mooij
cac751e8e9 Bug 1269319 followup - Don't swap an entry with itself to avoid Variant self assignment. r=bustage 2016-05-21 18:08:30 +02:00
Jan de Mooij
b94199ed72 Bug 1269319 - Make AlignedStorage/AlignedStorage2 non-copyable to fix strict aliasing issues. r=Waldo 2016-05-19 20:57:36 +02:00
Nicholas Nethercote
26b6e79d96 Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj.
It's an annotation that is used a lot, and should be used even more, so a
shorter name is better.

MozReview-Commit-ID: 1VS4Dney4WX
2016-04-27 14:16:50 +10:00
Shu-yu Guo
6e1c2a843d Bug 1265956 - Assert that no entry is found in HashTable::putNew. (r=terrence) 2016-04-20 14:52:12 -07:00
Jeff Walden
85a717f285 Bug 1246061. r=jandem, r=bz, r=luke, r=froydnj 2016-03-09 00:37:20 -08:00
Luke Wagner
71e9479dce Bug 1234985 - Hoist CStringHasher (r=sfink) 2016-01-20 12:00:21 -06:00
Luke Wagner
c9adf369ac Bug 1239601 - improve the UniquePtr situation (r=jorendorff) 2016-01-15 18:26:06 -06:00
Terrence Cole
fa9064ea99 Bug 1239515 - Simplify HashSet's key-overwriting interface; r=sunfish 2016-01-14 09:43:30 -08:00
Jim Blandy
91a70554e0 Bug 1236801: Don't check for simulated OOM in a way that invalidates AddPtrs for no discernable reason. (Revised to fix uninitialized var, r=sfink) r=jonco 2016-01-12 16:49:45 -08:00
Wes Kocher
f9b049098b Backed out changeset 7111837e42b9 (bug 1236801) for SM wError bustage 2016-01-12 16:55:12 -08:00
Jim Blandy
fac758d5cd Bug 1236801: Don't check for simulated OOM in a way that invalidates AddPtrs for no discernable reason. r=jonco 2016-01-08 10:01:53 -08:00
Jon Coppeard
d7f739d415 Bug 1232672 - Use MOZ_WARN_UNUSED_RESULT to make hash table clients check for failure r=luke r=billm r=njn 2015-12-22 13:29:43 +00:00
Jon Coppeard
109829c8f1 Bug 1207519 - Prevent HashTable shrink from ignoring allocation failures that may have been reported r=Waldo 2015-09-30 11:34:49 +01:00
Jon Coppeard
9ab68eba4e Bug 1200642 - Add OOM simulation to hastables r=terrence 2015-09-30 11:34:49 +01:00
Terrence Cole
8abd842597 Bug 1196847 - Part 2: Implement a cell hasher that uses unique id based hashes; r=jonco 2015-08-26 14:51:35 -07:00
Terrence Cole
f0d9e8f78f Bug 1196847 - Part 1: Allow storage of a unique id for a cell independent of address; r=jonco
* * *
imported patch rewrite_uid_on_ht_with_zone_sweeping
2015-08-20 10:35:22 -07:00
Terrence Cole
76cb0517aa Backout cca86cd156cf (Bug 1196847) for regressing EarleyBoyer. 2015-09-28 14:57:16 -07:00
Terrence Cole
359c2df69b Backout 74608aa063b9 (Bug 1196847) for regressing EarleyBoyer. 2015-09-28 14:56:57 -07:00
Terrence Cole
e71d71456e Bug 1196847 - Part 2: Implement a cell hasher that uses unique id based hashes; r=jonco 2015-08-26 14:51:35 -07:00
Terrence Cole
2840f5e6d8 Bug 1196847 - Part 1: Allow storage of a unique id for a cell independent of address; r=jonco
* * *
imported patch rewrite_uid_on_ht_with_zone_sweeping
2015-08-20 10:35:22 -07:00
Terrence Cole
2a7d3fe4f4 Backout 7f6585a46cd0 (Bug 1196847) for being on top of a regression. 2015-09-03 09:37:19 -07:00
Terrence Cole
2b6a504d51 Bug 1196847 - Part 2: Implement a cell hasher that uses unique id based hashes; r=jonco 2015-08-26 14:51:35 -07:00
Nick Fitzgerald
f219652117 Bug 1187399 - Add a js::DefaultHasher specialization for mozilla::UniquePtr<T> that proxies the UniquePtr's raw pointer to PointerHasher. r=terrence 2015-07-24 10:42:00 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Jan de Mooij
75afa21431 Bug 1144366 followup - Stop declaring multiple pointers on a single line. r=jorendorff 2015-04-02 11:22:21 +02:00
Jon Coppeard
dfc696d009 Bug 1149135 - Don't create HashMapEntry on stack when adding to a HashMap r=luke 2015-04-01 10:11:06 +01:00
Jan de Mooij
c6596c5fa8 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 23:22:11 +01:00
Phil Ringnalda
1a1c158706 Backed out changeset 0c030f97a04f (bug 1144366) for being on top of patches being backed out
CLOSED TREE
2015-03-28 10:39:56 -07:00
Jan de Mooij
369ef1b850 Bug 1144366 - Switch SpiderMonkey and XPConnect style from |T *t| to |T* t|. r=jorendorff 2015-03-28 12:08:37 +01:00
Brian Hackett
65c0af280b Bug 1143521 - Remove IsPoisonedPtr stuff, r=sfink. 2015-03-18 18:01:35 -07:00
Nick Fitzgerald
2d59954d12 Bug 1139217 - Make js::HashSet<T> work with move-only T types; r=luke 2015-03-03 17:54:00 +01:00
Jon Coppeard
127c7e4901 Bug 1136046 - Increase maximum capacity of js::HashMap and HashSet r=luke 2015-02-26 09:02:13 +00:00
Nicholas Nethercote
4636a025ad Bug 979293 - Don't write collision bits in HashTable unnecessarily. r=luke.
This avoids no-op writes to the keyHash of entries when doing a no-add-lookup.
This removes a genuine data race in JSRuntime::permanentAtoms, which receives
frequent no-add-lookups from multiple threads after JSRuntime initialization
without any kind of locking.
2015-02-25 10:39:46 -08:00
Dan Gohman
a423f47fe2 Bug 1131783 - Mark various unlikely conditions as MOZ_UNLIKELY r=waldo 2015-02-12 08:37:01 -08:00
Birunthan Mohanathas
7f80d25ce3 Bug 1120796 - Part 2: Replace ConvertibleToBool hackarounds with explicit bool operators. r=Waldo 2015-02-03 18:52:36 +02:00
Jon Coppeard
e46b475240 Bug 1127246 - Add a post barrier to the baseShapes table r=terrence a=abillings 2015-02-02 10:11:23 +00:00
Masatoshi Kimura
bae0a32948 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Ehsan Akhgari
a7f747ec15 Bug 1118486 - Part 1: Use = delete instead of MOZ_DELETE directly; r=Waldo
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:

#!/bin/bash

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "*/.git*" \
       ! -wholename "obj-*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Jeff Walden
bcdf0c3bb3 Bug 712939 - Replace a bunch of JS_STATIC_ASSERTs with static_assert. r=jandem 2014-10-22 15:17:38 -07:00
Nicolas B. Pierron
cb753ff627 Bug 1074911 - Replace JS_ASSERT by MOZ_ASSERT. r=jorendorff
Apply the following script

sed -i '
   /JS_ASSERT(/ {
     s/JS_ASSERT(/MOZ_ASSERT(/;
     :b;
     s/ \\$/\\/;
     /;/ { p; d; };
     n;
     s/^/ /;
     b b;
  };
  s/JS_ASSERT (/MOZ_ASSERT(/;
'

Except where the JS_ASSERT macro does not end with a semi-colon, where empty
lines are in the middle of the macro, and where the backslahes are always the
same-length after the expression.
2014-10-01 19:17:51 +02:00
Jon Coppeard
6e0d7b61ee Bug 650161 - Update pointers to relocated objects r=terrence 2012-06-05 11:47:42 -07:00
Ed Morley
d84861ec54 Backed out changeset 3adf62f886d9 (bug 650161) 2014-08-14 12:52:41 +01:00
Jon Coppeard
0df96e785c Bug 650161 - Update pointers to relocated objects r=terrence 2012-06-05 11:47:42 -07:00
Terrence Cole
845c16df98 Bug 1033442 - Remove non-pod calloc from MallocProvider and AllocPolicy; r=jonco 2014-08-05 14:06:35 -07:00
Nicholas Nethercote
644380fb98 Bug 1043605 - Fix up DEBUG/JS_DEBUG confusion in HashTable.h. r=jwalden. 2014-08-10 23:17:44 -07:00
Nicholas Nethercote
5a6780f78f 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.
2014-07-16 16:51:09 -07:00