searching for reviewer(luke)
87a88fb8b1a60c125feb18d8cf089f857cb39f71: Bug 1466118 part 9 - Some more cleanup. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Wed, 22 Aug 2018 11:54:31 +0200 - rev 831048
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 9 - Some more cleanup. r=luke
64a85b3753acab5c776f732553139878fdcda1cb: Bug 1466118 part 8 - Change compartment check to realm check for JSScript and AbstractFramePtr. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 13:14:23 +0200 - rev 831047
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 8 - Change compartment check to realm check for JSScript and AbstractFramePtr. r=luke
ff5cb8442b5d452de5677dbacf9bec9df0bf5a83: Bug 1466118 part 6 - Rename CompartmentChecker to ContextChecks and support realm checks. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:48:03 +0200 - rev 831045
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 6 - Rename CompartmentChecker to ContextChecks and support realm checks. r=luke
af49f7a464d573a7008a301b315bd4303996e320: Bug 1466118 part 5 - Replace assertSameCompartmentImpl with JSContext::checkImpl. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:34:18 +0200 - rev 831044
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 5 - Replace assertSameCompartmentImpl with JSContext::checkImpl. r=luke
239b363ac50deb1431607b87ede33c918a45a969: Bug 1466118 part 4 - Replace assertSameCompartment with JSContext::check. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:18:21 +0200 - rev 831043
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 4 - Replace assertSameCompartment with JSContext::check. r=luke
224b09c2e661110abc9d29c7cca417cb5de5d3b4: Bug 1466118 part 3 - Replace assertSameCompartmentDebugOnly with JSContext::debugOnlyCheck. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:11:52 +0200 - rev 831042
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 3 - Replace assertSameCompartmentDebugOnly with JSContext::debugOnlyCheck. r=luke
5cb4cd7c449ecef9226496dc736d7c7325d37473: Bug 1466118 part 2 - Replace releaseAssertSameCompartment with JSContext::releaseCheck. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 12:07:57 +0200 - rev 831041
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 2 - Replace releaseAssertSameCompartment with JSContext::releaseCheck. r=luke
3bf5eb6fe16d1fa91924edc63da909f1b96d1307: Bug 1466118 part 1 - Use variadic templates for assertSameCompartment functions. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Tue, 21 Aug 2018 11:57:49 +0200 - rev 831040
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1466118 part 1 - Use variadic templates for assertSameCompartment functions. r=luke
e2b35cf75610a77c6470b370118cbd0517069718: Bug 1480725 - stress test wasm atomics. r=luke
Lars T Hansen <lhansen@mozilla.com> - Thu, 09 Aug 2018 15:47:30 +0200 - rev 831035
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1480725 - stress test wasm atomics. r=luke
Atomic operations are stress-tested by having multiple workers work on
the same location in ways that would reveal non-atomicity in an
incorrect result.
We run these tests only on native implementations, not on simulators.
Our simulators don't implement atomicity well.
This patch has the bare minimum, testing multiple agents that perform
the same operation. It's possible to do more, notably, to combine
different operations.
aa3d1b33b0e94e6dae117d2e32e5cd007debd36a: Bug 1467632 - Specialize ReadScalar<ExprType>. r=luke
Lars T Hansen <lhansen@mozilla.com> - Tue, 21 Aug 2018 09:17:05 +0200 - rev 831034
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1467632 - Specialize ReadScalar<ExprType>. r=luke
Normally ReadScalar uses memcpy from the source stream to the
destination object. This is only well-defined if the destination
argument is a POD type, which ExprType is not. So specialize
ReadScalar for ExprType and make the memcpy target the data payload in
that type instead.
a0883c99c897122286c6e1711cada83d9889e093: Bug 1467632 - Make AsmJSGlobal's pod field be POD. r=luke, r=waldo
Lars T Hansen <lhansen@mozilla.com> - Mon, 20 Aug 2018 17:14:19 +0200 - rev 831033
Push
118868 by bmo:zjz@zjz.name at Fri, 24 Aug 2018 07:04:39 +0000
Bug 1467632 - Make AsmJSGlobal's pod field be POD. r=luke, r=waldo
The pod member needs to be POD but has members that have evolved no
longer to be POD - a ValType and a LitVal. We work around the problem
locally by using ValType's representation type PackedTypeCode to
represent types, and by specializing LitVal as LitValPOD for use in
this structure.
c3bb26f985552814f9e35639a15acd10a15878bb: Bug 1483182 - Do report OOM failures in HashTable::reserve(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 19:07:20 +1000 - rev 830698
Push
118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483182 - Do report OOM failures in HashTable::reserve(). r=luke
This fixes a typo.
8116d3ee3a5a5564eb0aae5cd2cea501e728deb9: Bug 1483182 - Don't allocate in HashTable::lookupOrAdd(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 13:49:17 +1000 - rev 830697
Push
118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483182 - Don't allocate in HashTable::lookupOrAdd(). r=luke
Currently lookupOrAdd() will allocate if the table has no storage. But it
doesn't report an error if the allocation fails, which can cause problems.
This patch changes things so that lookupOrAdd() doesn't allocate when the table
has no storage. Instead, it returns an AddPtr that is not *valid* (its mTable
is empty) but it is *live*, and can be used in add(), whereupon the allocation
will occur.
The patch also makes Ptr::isValid() and AddPtr::isValid() non-public, because
the valid vs. live distinction is non-obvious and best kept hidden within the
classes.
8695f16b39ed48f002dccabf249da238bdb3e8b4: Bug 1479430 - Make sure TypeNewScript::maybeAnalyze is called in the group's realm. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 16 Aug 2018 11:59:19 +0200 - rev 830515
Push
118839 by mixedpuppy@gmail.com at Tue, 21 Aug 2018 18:59:46 +0000
Bug 1479430 - Make sure TypeNewScript::maybeAnalyze is called in the group's realm. r=luke
5f3c40ffdfedafcf6476694d148a5c6c7601db73: Bug 1437065: Rename interpCodeRangeIndex to funcCodeRangeIndex; r=luke
Benjamin Bouvier <benj@benj.me> - Mon, 20 Aug 2018 15:38:36 +0200 - rev 830448
Push
118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1437065: Rename interpCodeRangeIndex to funcCodeRangeIndex; r=luke
3d252d6f57ecaf969db3f2a50a9374d6a415acd8: Bug 1437065: Have LookupCode reset the codeRange out-param if it didn't find a Code; r=luke
Benjamin Bouvier <benj@benj.me> - Tue, 07 Aug 2018 16:04:58 +0200 - rev 830446
Push
118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1437065: Have LookupCode reset the codeRange out-param if it didn't find a Code; r=luke
dc7413a25676e83242f0d1e539bf36015bb14550: Bug 1484605 - Tweak some lookupForAdd() uses. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 21 Aug 2018 11:53:47 +1000 - rev 830429
Push
118832 by bmo:ntim.bugs@gmail.com at Tue, 21 Aug 2018 13:33:17 +0000
Bug 1484605 - Tweak some lookupForAdd() uses. r=luke
These are cases where the existing code is a little dubious or sub-optimal.
da46bfc2c089ad5e79bd9387850adc37240f26cb: Bug 1483062 - Inline and remove HashTable::{over,under}loaded(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 16 Aug 2018 09:10:17 +1000 - rev 829659
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Inline and remove HashTable::{over,under}loaded(). r=luke
Because they each only have a single call site, and the "too many items
removed?" test is already encapsulated within rehashIfOverloaded().
ca2edc3b4c1ab044694e836f3da6963c929bcf35: Bug 1483062 - Merge HashTable::wouldBeUnderloaded() into underloaded(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Wed, 15 Aug 2018 11:11:13 +1000 - rev 829658
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Merge HashTable::wouldBeUnderloaded() into underloaded(). r=luke
a3bf3a494b0b7c2817e3f6f3daa9cf4ec7624435: Bug 1483062 - Inline and remove HashTable::overRemoved(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Wed, 15 Aug 2018 11:10:56 +1000 - rev 829657
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Inline and remove HashTable::overRemoved(). r=luke
2d9e3360e858f6c502ae9728280efb0f12daa7e4: Bug 1483062 - Rename HashTable::rehashIfOverRemoved(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 11:56:55 +1000 - rev 829656
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename HashTable::rehashIfOverRemoved(). r=luke
infallibleRehashIfOverloaded() actually matches what it does.
Also, the patch removes the `overloaded()` test within the function, because
`rehashIfOverloaded()` has the same test.
43e351bda401e80292efbde947e56d1893b95903: Bug 1483062 - Rename some HashTable methods. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 11:19:39 +1000 - rev 829655
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename some HashTable methods. r=luke
Specifically:
- checkOverloaded -> rehashIfOverloaded
- checkUnderloaded -> shrinkIfUnderloaded
- checkOverRemoved -> rehashIfOverRemoved
Because I've always found that the `check` prefix doesn't clearly explain that
the table might be changed,
And:
- shouldCompressTable -> overRemoved
Because that matches `overloaded` and `underloaded`.
f1e1cf1d42ec20c547a46cee30163a0b41fa36f4: Bug 1483062 - Rename HashTable::findFreeEntry() as findNonLiveEntry(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Tue, 14 Aug 2018 09:36:00 +1000 - rev 829654
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Rename HashTable::findFreeEntry() as findNonLiveEntry(). r=luke
Because that's a more accurate description of what it does -- it finds free
*and* removed entries.
e483b91eafbced7dd6636139cea44240a511bb5e: Bug 1483062 - Remove HashTable::maybeCreateTable. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 09 Aug 2018 14:19:49 +1000 - rev 829653
Push
118788 by bmo:dharvey@mozilla.com at Thu, 16 Aug 2018 11:52:55 +0000
Bug 1483062 - Remove HashTable::maybeCreateTable. r=luke
It's dead.
9112406a54a2d3806112111620f25267203a992e: Bug 1481171 - Properly emit signal handling metadata for wasm on aarch64. r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 10 Aug 2018 11:09:44 +0200 - rev 828746
Push
118704 by bmo:rcaliman@mozilla.com at Mon, 13 Aug 2018 16:58:07 +0000
Bug 1481171 - Properly emit signal handling metadata for wasm on aarch64. r=luke
As the aarch64 instruction emitters do not return the BufferOffset of
the access instruction, we have to resort to AutoForbidPools to keep
the metadata emitted at the correct address of the access. Manual
inspection of the assembler code and the addressing modes used reveals
that this is viable, if it's done just so.
I've added comments to highlight the fact that it is a little brittle,
and the AutoForbidPools with an instruction window of 1 instruction
will cause failures if assumptions about the machine code should be
violated accidentally in the future.
ad30dc53e38ec41adc99f81fd8a5102ecf7775fd: Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 10 Aug 2018 18:00:29 +1000 - rev 828692
Push
118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Make mozilla::Hash{Map,Set}'s entry storage allocation lazy. r=luke,sfink
Entry storage allocation now occurs on the first lookupForAdd()/put()/putNew().
This removes the need for init() and initialized(), and matches how
PLDHashTable/nsTHashtable work. It also removes the need for init() functions
in a lot of types that are built on top of mozilla::Hash{Map,Set}.
Pros:
- No need for init() calls and subsequent checks.
- No memory allocated for empty tables, which are not that uncommon.
Cons:
- An extra branch in lookup() and lookupForAdd(), but not in put()/putNew(),
because the existing checkOverloaded() can handle it.
Specifics:
- Construction now can take a length parameter.
- init() is removed. Explicit length-setting, when necessary, now occurs in the
constructors.
- initialized() is removed.
- capacity() now returns zero when the entry storage is absent.
- lookupForAdd() is no longer `const`, because it can instantiate the storage,
which requires modifications.
- lookupForAdd() can now return an invalid AddPtr in two cases:
- old: hashing failure (due to OOM in the hasher)
- new: OOM while instantiating entry storage
The existing failure handling paths for the old case work for the new case.
- clear(), finish(), and clearAndShrink() are replaced by clear(), compact(),
and reserve(). The old compactIfUnderloaded() is also removed.
- Capacity computation code is now in its own functions, bestCapacity() and
hashShift(). setTableSizeLog2() is removed.
- uint32_t is used throughout for capacities, instead of size_t, for
consistency with other similar values.
- changeTableSize() now takes a capacity instead of a deltaLog2, and it can now
handle !mTable.
Measurements:
- Total source code size is reduced by over 900 lines. Also, lots of existing
lines got shorter (i.e. two checks were reduced to one).
- Executable size barely changed, down by 2 KiB on Linux64. The extra branches
are compensated for by the lack of init() calls.
- Speed changed negligibly. The instruction count for Bench_Cpp_MozHash
increased from 2.84 billion to 2.89 billion but any execution time change was
well below noise.
223884f0ad76f8224f046311dd016b83fbb3aa6e: Bug 1481998 - Define lookup() in terms of readonlyThreadsafeLookup(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 10 Aug 2018 15:35:13 +1000 - rev 828691
Push
118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Define lookup() in terms of readonlyThreadsafeLookup(). r=luke
The two functions are almost identical. This change minimizes duplication.
6bb61989d9ae6611277918cbf320e878c55dd825: Bug 1481998 - Change sJSObjWrappers initialization. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Thu, 09 Aug 2018 14:15:42 +1000 - rev 828690
Push
118697 by bmo:ntim.bugs@gmail.com at Mon, 13 Aug 2018 11:00:31 +0000
Bug 1481998 - Change sJSObjWrappers initialization. r=luke
GCHashMap will shortly lose its initialized() function, so we need another way
to indicate whether this table has been created. This patch changes it to use a
pointer instead.
9f73af1f3b2c6928a18cc01d64f55b75aa3c4bba: Bug 1482423 part 1 - Assert compartments don't contain both system/non-system realms. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Sat, 11 Aug 2018 13:12:49 +0200 - rev 828577
Push
118683 by bmo:gl@mozilla.com at Sat, 11 Aug 2018 20:18:50 +0000
Bug 1482423 part 1 - Assert compartments don't contain both system/non-system realms. r=luke
ac7bd965f86b3ae24921f35072eeea2204c82bba: Bug 1481171 - Remove failure path for lookupTrap(). r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 03 Aug 2018 12:04:53 +0200 - rev 828243
Push
118651 by bmo:guptatrisha97@gmail.com at Fri, 10 Aug 2018 11:02:58 +0000
Bug 1481171 - Remove failure path for lookupTrap(). r=luke
With asm.js atomics gone and wasm atomics opting in to standard
trap-based OOB handling, we should never fail to find a trap site. So
assert that we always find it, and remove code that is now dead.
413be91a02578a573edcb765117fc3e73ad6c427: Bug 1481171 - Wasm-specific atomics operations. r=luke
Lars T Hansen <lhansen@mozilla.com> - Mon, 06 Aug 2018 15:55:49 +0200 - rev 828242
Push
118651 by bmo:guptatrisha97@gmail.com at Fri, 10 Aug 2018 11:02:58 +0000
Bug 1481171 - Wasm-specific atomics operations. r=luke
A large and mostly mechanical change: Prune the non-JS atomic APIs in
MacroAssembler.h and add many wasm-specific APIs instead.
The three non-JS APIs that remain in MacroAssembler.h could also be
removed but are used in multiple places to implement the JS APIs, and
it seemed fine to just leave them in. They are after all generally
useful.
Note, this patch changes MIPS code so that it compiles, but it does
not insert the necessary emitting of metadata, partly because the
mechanics of that for 64-bit ops on 32-bit systems depends on the
implementation of those 64-bit ops, and partly because I am happy to
let the MIPS maintainers do the work and check it. I have left behind
FIXME comments where changes are needed.
The one additional test case in jit-test is a result of closely
reading existing code and finding a bug that should have caused a
failure, but didn't, once the wasm/asm.js fallback for signal handling
was removed.
b1bfefd4495f785edec66dcec131f498f234ba95: Bug 1481793 part 3 - Assert cross-compartment wrappers don't wrap other CCWs. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828003
Push
118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 3 - Assert cross-compartment wrappers don't wrap other CCWs. r=luke
697419a81da4f0b4e3895ab86527df6c17897c11: Bug 1481793 part 2 - Do a CheckedUnwrap in JS_StructuredClone. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828002
Push
118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 2 - Do a CheckedUnwrap in JS_StructuredClone. r=luke
6d258e061cb184a4e87d2977e96d36e93ad6e474: Bug 1481793 part 1 - Use assertSameCompartment instead of AutoRealm in JSStructuredCloneWriter::write. r=luke
Jan de Mooij <jdemooij@mozilla.com> - Thu, 09 Aug 2018 13:34:40 +0200 - rev 828001
Push
118619 by bmo:mtigley@mozilla.com at Thu, 09 Aug 2018 18:23:03 +0000
Bug 1481793 part 1 - Use assertSameCompartment instead of AutoRealm in JSStructuredCloneWriter::write. r=luke
ed655b5136856c68f73d87e49a685c7a1b9c4fd1: Bug 1478713 - Add some tests for the Wasm JS API; r=luke+bbouvier
Ms2ger <Ms2ger@igalia.com> - Tue, 07 Aug 2018 10:18:34 +0200 - rev 827156
Push
118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1478713 - Add some tests for the Wasm JS API; r=luke+bbouvier
09cd991472c91745e9e14da56b7f7d227cc3c073: Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 12:01:28 +1000 - rev 827150
Push
118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke
Hash{Map,Set}::putNew() can be used on a table that has had elements removed,
despite some comments to the contrary.
This patch fixes those comments. It also clarifies when putNewInfallible() can
be used.
This patch also removes the !isRemoved() assertion in findFreeEntry(), which is
confusing -- !isLive() would be more precise, but also obvious from the
surrounding code.
MozReview-Commit-ID: q4qwKGBsHx
01dcd8f80341ec39c949e364d5f46fd9c97963da: Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:45:38 +1000 - rev 827149
Push
118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke
Because it's quite strange, badly named, not that useful, and barely used.
Also remove WeakMap::lookupWithDefault(), which is similar, but not used at
all.
MozReview-Commit-ID: IhIl4hQ73U1
49d5dcbe36ff823980946cf45b9964a04efc2c1e: Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:10:05 +1000 - rev 827148
Push
118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke
Because (a) it's kinda weird, and (b) only used in a single test, where it can
be easily replaced with a vanilla add().
MozReview-Commit-ID: L4RoxFb7yGG
7e1f880b5f882732370ad70d02e7378b14b302f8: Bug 1423577 - Remove asm.js atomics support. r=luke
Lars T Hansen <lhansen@mozilla.com> - Fri, 03 Aug 2018 10:09:10 +0200 - rev 826954
Push
118420 by bschouten@mozilla.com at Mon, 06 Aug 2018 14:19:46 +0000
Bug 1423577 - Remove asm.js atomics support. r=luke
3a061c9a611bbbe2ba914f9d2afbc6ca47eb7d3f: Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke
draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 12:01:28 +1000 - rev 826907
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Clarify that Hash{Map,Set}::putNew() can be used if elements have been removed. r=luke
Hash{Map,Set}::putNew() can be used on a table that has had elements removed,
despite some comments to the contrary.
This patch fixes those comments.
This patch also removes the !isRemoved() assertion in findFreeEntry(), which is
confusing -- !isLive() would be more precise, but also obvious from the
surrounding code.
MozReview-Commit-ID: q4qwKGBsHx
d09008e7d9d525043cd5399374f942fbabd5e2c7: Bug 1481138 - Remove Hash{Map,Set}::putNewInfallible. r=luke
draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 11:52:17 +1000 - rev 826906
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove Hash{Map,Set}::putNewInfallible. r=luke
The difference between putNew() and putNewInfallible() is subtle -- the latter
omits three checks. Omitting two of them (SimulatedOOM and checkOverloaded())
is reasonable, but omitting the EnsureHash() check is dubious.
Furthermore, putNewInfallible() has very few uses; in my opinion, not enough to
warrant its existence. So this patch removes it, simplifying the API and the
implementation.
MozReview-Commit-ID: 3KfpVERhqTh
9d96ceec60c7d9a25a3ca643fd52adbcff26cae8: Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke
draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:45:38 +1000 - rev 826905
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove HashMap::lookupWithDefault(). r=luke
Because it's quite strange, badly named, not that useful, and barely used.
Also remove WeakMap::lookupWithDefault(), which is similar, but not used at
all.
MozReview-Commit-ID: IhIl4hQ73U1
cb701ed3ea0bfbd0c75283a80a7cd79d7352d5a9: Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke
draft
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 09:10:05 +1000 - rev 826904
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1481138 - Remove the add() variant in HashTable and GCHashTable that uses a default value. r=luke
Because (a) it's kinda weird, and (b) only used in a single test, where it can
be easily replaced with a vanilla add().
MozReview-Commit-ID: L4RoxFb7yGG
a8b367f1fd79e12b2f51a3aafb1e2d2202d4a331: Bug 1480668 - Remove js::CStringHashPolicy. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Mon, 06 Aug 2018 07:55:50 +1000 - rev 826903
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480668 - Remove js::CStringHashPolicy. r=luke
It's identical to mozilla::CStringHasher.
Also fix a comment at the top of HashTable.h about CStringHasher.
91b59c5ea423615849aae7badd67bf63090f1ae9: Bug 1480650 - Remove mozilla::HashTable::Stats. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 11:59:26 +1000 - rev 826902
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480650 - Remove mozilla::HashTable::Stats. r=luke
I bet nobody has used them in years. The use of ad hoc profiling (printfs plus
post-processing with a tool like https://github.com/nnethercote/counts) is
generally a better approach.
Bug 1179657 did likewise for PLDHashTable.
3abea9c60292bd8492e457c3c3c067caf35ee930: Bug 1480323 - Reorder methods in Hash{Set,Map}. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:25:29 +1000 - rev 826901
Push
118403 by nnethercote@mozilla.com at Mon, 06 Aug 2018 07:02:00 +0000
Bug 1480323 - Reorder methods in Hash{Set,Map}. r=luke
And add comments delimiting different operation groups. Together these changes
make Hash{Set,Map} much easier to navigate.
88c19779b62620c97710a54a262d3f905284b6b1: Bug 1480588 - restrict rtdsc Time.h functions to x86ish processors on Windows; r=luke
Nathan Froyd <froydnj@mozilla.com> - Fri, 03 Aug 2018 18:07:35 -0400 - rev 826565
Push
118367 by bmo:jeremy.lempereur@gmail.com at Sat, 04 Aug 2018 13:04:55 +0000
Bug 1480588 - restrict rtdsc Time.h functions to x86ish processors on Windows; r=luke
__rtdsc is not going to work so well on AArch64.
61310ac63cfd3f5fdd04420311c8273e20b2b27d: Bug 1480012 - Generalize JS shell mailbox to Wasm memories and modules. r=luke
Lars T Hansen <lhansen@mozilla.com> - Wed, 01 Aug 2018 13:21:06 +0200 - rev 826315
Push
118290 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 15:01:59 +0000
Bug 1480012 - Generalize JS shell mailbox to Wasm memories and modules. r=luke
In the old days we could only share a SharedArrayBuffer, but now we
can also share WasmMemory and WasmModule objects. Rename the shell's
get/setSharedArrayBuffer as get/setSharedObject and generalize them to
handle the new types.
Leave the old names in place as aliases of the new names.
We rename /some/ uses of get/setSharedArrayBuffer in existing test
cases, but leave uses in test262 alone; we need to upstream those more
carefully.
6c0410ddd1f6950a7398321c10b520ac1d378ed2: Bug 1480361 - Introduce HashTable::LookupReason. r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:03:37 +1000 - rev 826230
Push
118275 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 11:44:33 +0000
Bug 1480361 - Introduce HashTable::LookupReason. r=luke
Again inspired by PLDHashTable, this makes things a bit clearer than passing 0
or sCollisionBit.
It also guarantees more strongly that we'll end up with appropriately
specialized code for the Add vs. NonAdd cases. (That guarantee isn't currently
needed because the compiler inlines things sufficiently anyway, but it can't
hurt.)
d9baec9cf420acf68530b10bca19f67b72e3cb2b: Bug 1480361 - Tweak handling of removed entries in HashTable::lookup(). r=luke
Nicholas Nethercote <nnethercote@mozilla.com> - Fri, 03 Aug 2018 10:03:31 +1000 - rev 826229
Push
118275 by bmo:dharvey@mozilla.com at Fri, 03 Aug 2018 11:44:33 +0000
Bug 1480361 - Tweak handling of removed entries in HashTable::lookup(). r=luke
There are two improvements here.
- When we're just doing a lookup (i.e. aCollisionBit==0), we don't need to
do any special handling of removed entries. (Inlining means that the removed
entry code is entirely removed for lookups.)
- When we're doing an insertion (i.e. aCollisionBit==sCollisionBit), we now
stop adding collision markings once we find a removed entry, because they're
unnecessary after that point.
This change brings the code in alignment with PLDHashTable::SearchTable().