Граф коммитов

2180 Коммитов

Автор SHA1 Сообщение Дата
Simon Giesecke 1e02318b49 Bug 1653335 - Replace MakeSpan uses by constructor calls. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83817
2020-08-07 07:49:47 +00:00
Simon Giesecke 48dd75b228 Bug 1653335 - Add/fix constructors and deduction guides for Span. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83813
2020-08-07 07:42:52 +00:00
Simon Giesecke dea5b543db Bug 1653335 - Remove uses of MakeSpan in return statements. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83812
2020-08-07 07:42:50 +00:00
David Major 7bdbf197ee Bug 1657455 - Give EnumSet an assignment operator r=sg
Newer clangs complain that we explicitly defined a copy constructor but not a copy assignment.

Differential Revision: https://phabricator.services.mozilla.com/D86061
2020-08-06 20:40:37 +00:00
Kagami Sascha Rosylight b6115988e8 Bug 1656041 - Part 2: Return a struct from GetFrameFromDirection r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D85317
2020-08-04 15:23:47 +00:00
Simon Giesecke 18d9c43178 Bug 1654564 - Fix documentation of requirements on target in MOZ_TRY_VAR. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84531
2020-08-04 08:50:26 +00:00
Csoregi Natalia e321d2b4c3 Backed out changeset 6b53d90ee8b4 (bug 1656894) for asan bustage on xxhash.h. CLOSED TREE 2020-08-03 22:53:58 +03:00
Ryan VanderMeulen 4837f819c1 Bug 1656894 - Update xxHash to version 0.8.0. r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D85767
2020-08-03 17:30:19 +00:00
Nathan Froyd a527a4b54d Bug 1223932 - remove mfbt/GuardObjects.h; r=jwalden
We no longer need this for reasons outlined in the previous commit.

Depends on D85168

Differential Revision: https://phabricator.services.mozilla.com/D85169
2020-07-31 18:58:32 +00:00
Sylvestre Ledru 843f943758 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D85678
2020-08-02 15:29:15 +00:00
Jeff Gilbert fa50c42c4b Bug 1656034 - Add UnderlyingValue() to mfbt. - r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D85495
2020-07-31 23:04:44 +00:00
Chris Martin 552aa91269 Bug 1652561 - Remote Win32k calls in nsLookAndFeel::GetFontImpl() r=emilio,geckoview-reviewers,agi,froydnj
Content processes will now receive cached values for GetFontImpl() from the
parent process during initialization and whenever the theme changes.

This eliminates the use of several Win32k calls in content.

Differential Revision: https://phabricator.services.mozilla.com/D83406
2020-07-31 16:21:44 +00:00
Nathan Froyd e3ebda1914 Bug 1223932 - delete guard object uses from the tree; r=jwalden
CLOSED TREE

We don't need these macros anymore, for two reasons:

1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
   and friends.
2. clang now warns for the "temporary that should have been a declaration" case.

The extra requirements on class construction also show up during debug tests
as performance problems.

This change was automated by using the following sed script:

```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d

# Remove individual macros, carefully.
{
  # We don't have to worry about substrings here because the closing
  # parenthesis "anchors" the match.
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;

  # Remove the longer identifier first.
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}

# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```

and running:

```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```

Differential Revision: https://phabricator.services.mozilla.com/D85168
2020-07-30 14:22:38 +00:00
Mihai Alexandru Michis a911a108d0 Backed out changeset ac9c811bc427 (bug 1223932) for causing spidermonkey rust failures.
CLOSED TREE
2020-07-30 18:23:21 +03:00
Nathan Froyd bec9f9b93a Bug 1223932 - delete guard object uses from the tree; r=jwalden
We don't need these macros anymore, for two reasons:

1. We have static analysis to provide the same sort of checks via `MOZ_RAII`
   and friends.
2. clang now warns for the "temporary that should have been a declaration" case.

The extra requirements on class construction also show up during debug tests
as performance problems.

This change was automated by using the following sed script:

```
# Remove declarations in classes.
/MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER/d
/MOZ_GUARD_OBJECT_NOTIFIER_INIT/d

# Remove individual macros, carefully.
{
  # We don't have to worry about substrings here because the closing
  # parenthesis "anchors" the match.
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_TO_PARENT)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_PARAM_IN_IMPL)/)/g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_IN_IMPL)/)/g;

  # Remove the longer identifier first.
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM_TO_PARENT//g;
  s/MOZ_GUARD_OBJECT_NOTIFIER_ONLY_PARAM//g;
}

# Remove the actual include.
\@# *include "mozilla/GuardObjects.h"@d
```

and running:

```
find . -name \*.cpp -o -name \*.h | grep -v 'GuardObjects.h' |xargs sed -i -f script 2>/dev/null
mach clang-format
```

Differential Revision: https://phabricator.services.mozilla.com/D85168
2020-07-30 14:22:38 +00:00
Chris Peterson fd6ca4ec31 Bug 1652914 - Part 2: Remove unused MOZ_STATIC_ASSERT macro. r=jwalden
Depends on D83736

Differential Revision: https://phabricator.services.mozilla.com/D83737
2020-07-17 02:48:36 +00:00
Emilio Cobos Álvarez ff61891772 Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp
Having two classes in the inheritance chain inherit from SupportsWeakPtr
now won't compile, but you can use WeakPtr<Derived> when any base class
inherits from SupportsWeakPtr.

Differential Revision: https://phabricator.services.mozilla.com/D83674
2020-07-23 14:51:46 +00:00
Jeff Gilbert 35f892e782 Bug 1607940 - Stand up webgl.out-of-process:true path. r=handyman,nika,froydnj
* Use clearer pref names.
* Default (and only support) IPDL dispatching.
* Make DispatchCommands async-only.
* Sync ipdl command per sync webgl entrypoint.
  * Eat the boilerplate cost, since there's not too many.
* Run SerializedSize off same path as Serialize.
* All shmem uploads go through normal DispatchCommands.
* Defer pruning of dead code for now so we can iterate quickly.
* Use Read/Write(begin,end) instead of (begin,size).
  * This would have prevented a bug where we read/wrote N*sizeof(T)*sizeof(T).

Differential Revision: https://phabricator.services.mozilla.com/D81495
2020-07-21 22:56:52 +00:00
Frederik Braun c4e884127c Bug 1651977 - add MOZ_NO_VALIDATE r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D83069
2020-07-13 09:01:00 +00:00
Simon Giesecke 4fa1e97bce Bug 1651323 - Add MOZ_LIFETIME_BOUND attribute. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D82681
2020-07-10 12:16:13 +00:00
Jean-Yves Avenard bd648e63b9 Bug 1649974 - P1. Make WeakPtr work with generic taskqueue. r=froydnj
It worked until now as IPC's MessageChannel was only used with background taskqueue; which use a threadpool made of a single thread only.

Differential Revision: https://phabricator.services.mozilla.com/D82499
2020-07-10 01:36:12 +00:00
Razvan Maries 05fa077757 Backed out 5 changesets (bug 1650996, bug 1649974) for perma failures on Android 7.0. CLOSED TREE
Backed out changeset 8f8174ba409d (bug 1650996)
Backed out changeset 374598f9c37a (bug 1650996)
Backed out changeset 236757acc073 (bug 1650996)
Backed out changeset 89d5cabfa2df (bug 1649974)
Backed out changeset 6e475ddbd18c (bug 1649974)
2020-07-09 10:33:45 +03:00
Jean-Yves Avenard 09c6a1b3f4 Bug 1649974 - P1. Make WeakPtr work with generic taskqueue. r=froydnj
It worked until now as IPC's MessageChannel was only used with background taskqueue; which use a threadpool made of a single thread only.

Differential Revision: https://phabricator.services.mozilla.com/D82499
2020-07-09 06:10:24 +00:00
Mihai Alexandru Michis b29ef28dc4 Backed out 2 changesets (bug 1649974) as requested by jyavenard.
CLOSED TREE

Backed out changeset 4d7301e8eeb3 (bug 1649974)
Backed out changeset 69bacb6e8287 (bug 1649974)
2020-07-09 05:43:59 +03:00
Nick Alexander aa96e0fc28 Bug 1651130 - Part 2: Add a new `tools/update-programs` build project. r=froydnj
Here "update programs" refers to the various standalone binaries we
produce in order to update Firefox.  There's not strong conceptual
coherence between them; rather, it's the pieces that the
Install/Update team generally work on.

To use this build project, prepare a minimal mozconfig with
`--enable-project=tools/update-programs`.  Depending on the mozconfig
options and host and target OS, some of the following will be built:

1. the maintenance service;
2. the updater binary;
3. the Windows Default Browser Agent;
4. the Background Update Agent.

Differential Revision: https://phabricator.services.mozilla.com/D82644
2020-07-08 23:03:21 +00:00
Jean-Yves Avenard d7560b65c6 Bug 1649974 - P1. Make WeakPtr work with generic taskqueue. r=froydnj
It worked until now as IPC's MessageChannel was only used with background taskqueue; which use a threadpool made of a single thread only.

Differential Revision: https://phabricator.services.mozilla.com/D82499
2020-07-08 13:15:42 +00:00
Bogdan Tara 0867b964e2 Backed out 5 changesets (bug 1650996, bug 1649974) for hazard failures CLOSED TREE
Backed out changeset de5e55b59a31 (bug 1650996)
Backed out changeset 35faa46f46f1 (bug 1650996)
Backed out changeset 6f779a3875a8 (bug 1650996)
Backed out changeset fac1e5a07a6c (bug 1649974)
Backed out changeset 3c5157a9e872 (bug 1649974)
2020-07-08 16:07:56 +03:00
Jean-Yves Avenard 9194155201 Bug 1649974 - P1. Make WeakPtr work with generic taskqueue. r=froydnj
It worked until now as IPC's MessageChannel was only used with background taskqueue; which use a threadpool made of a single thread only.

Differential Revision: https://phabricator.services.mozilla.com/D82499
2020-07-08 03:58:18 +00:00
june wilde 99fcac8838 Bug 1649967 - Add missing annotation attributes to builds with clang-plugin enabled; r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81958
2020-07-06 17:03:23 +00:00
Sylvestre Ledru caf785c695 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D82178
2020-07-04 09:38:43 +00:00
Simon Giesecke 273b5b9fd1 Bug 1649704 - Improve consistency of Span's span_iterator comparison. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81827
2020-07-02 13:46:01 +00:00
Nathan Froyd b272eadc07 Bug 1323307 - use compiler-builtin preprocessor macros for endianness always; r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D81551
2020-07-02 14:36:54 +00:00
Mike Hommey 77976c2cc1 Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r=gerald
This was previously r=jchen and landed, but was backed out because some
Android tests were running on an unrealistically old Linux kernel. These
tests have been retired, so this can reland.

Differential Revision: https://phabricator.services.mozilla.com/D81278
2020-06-26 03:48:49 +00:00
David Major a0cb558b98 Bug 1648541 - Rename details namespace in SPSCQueue r=froydnj
I will admit from the start that this patch is goofy and is not the "proper" fix.

If you're unlucky enough to tickle the current unification in `dom/media`, then there's a conflict between `namespace mozilla::details` of `SPSCQueue.h` and `namespace details` of Chromium's `task.h`. Ultimately, the badness stems from some unified file doing `using namespace mozilla;`, but I'm really not enthusiastic about reworking that when I just want to get unblocked.

I'm going to attempt to justify the yuckiness of this patch on the basis that:
* `SPSCQueue.h` is super self-contained and rarely looked at, I bet nobody will notice this change
* Tons of other code prefers the spelling `mozilla::detail` anyway

Differential Revision: https://phabricator.services.mozilla.com/D81162
2020-06-25 19:30:52 +00:00
Simon Giesecke 9235fda693 Bug 1648452 - Make construction of NotNull work with MovingNotNull of derived-type. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81077
2020-06-25 13:10:08 +00:00
Simon Giesecke 6fbe4dd29b Bug 1648044 - Add Maybe<T&>::refEquals methods. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80845
2020-06-25 15:09:58 +00:00
Simon Giesecke e30a7e3356 Bug 1647647 - Add InitializedOnce::ref methods. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80843
2020-06-25 13:12:47 +00:00
John Paul Adrian Glaubitz 1304678d83 Bug 1318905 - mfbt:tests: Define RETURN_INSTR for riscv64 in TestPoisonArea r=glandium
Define RETURN_INSTR for riscv64 in TestPoisonArea, i.e. the riscv64 assembly
opcodes for "ret ; ret".

Differential Revision: https://phabricator.services.mozilla.com/D78625
2020-06-18 07:11:09 +00:00
Simon Giesecke 2c863dcd11 Bug 1646391 - Simplify ReverseIterator. r=froydnj
The following simplifications are made:
* Unnecessary function template arguments are removed.
* Unnecessary copy constructor definitions are removed (making the types
  movable where possible).
* Iterators are moved where possible rather than copied.
* Unnecessary MOZ_IMPLICIT on a constructor with two arguments is removed.

Differential Revision: https://phabricator.services.mozilla.com/D80015
2020-06-18 07:49:16 +00:00
Mihai Alexandru Michis b0915875b3 Backed out changeset 186d892dc218 (bug 1646391) for causing bustages in TestReverseIterator.cpp
CLOSED TREE
2020-06-17 20:08:01 +03:00
Simon Giesecke 9fa5c13f41 Bug 1646391 - Simplify ReverseIterator. r=froydnj
The following simplifications are made:
* Unnecessary function template arguments are removed.
* Unnecessary copy constructor definitions are removed (making the types
  movable where possible).
* Iterators are moved where possible rather than copied.
* Unnecessary MOZ_IMPLICIT on a constructor with two arguments is removed.

Differential Revision: https://phabricator.services.mozilla.com/D80015
2020-06-17 15:20:25 +00:00
Simon Giesecke 9cf654a99f Bug 1645429 - Do not use ReverseIterator in nsTObserverArray::NonObservingRange. r=froydnj
Depends on D79957

Differential Revision: https://phabricator.services.mozilla.com/D79958
2020-06-17 13:29:02 +00:00
Simon Giesecke 901af53e36 Bug 1645429 - Add tests for ReverseIterator and fix implementation of ReverseIterator::operator-. r=froydnj
Depends on D79488

Differential Revision: https://phabricator.services.mozilla.com/D79957
2020-06-17 13:54:12 +00:00
David Major 0f1c6a1f28 Bug 1646171 - Fix vsnprintf complaint in Assertions.cpp r=froydnj
For some reason, our clang-plugin didn't notice this before clang 11.

Differential Revision: https://phabricator.services.mozilla.com/D79901
2020-06-16 21:26:16 +00:00
Sylvestre Ledru 85c05f3a47 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D79795
2020-06-16 14:37:23 +00:00
Simon Giesecke 8c0f977ccd Bug 1645429 - Use std::reverse_iterator instead of mozilla::ReverseIterator where possible. r=froydnj
mozilla::ReverseIterator is required for "stashing iterators", but otherwise
std::reverse_iterator can be used and is potentially more efficient.

Also fix some other glitches in iterator type definitions.

Differential Revision: https://phabricator.services.mozilla.com/D79489
2020-06-16 10:14:01 +00:00
Simon Giesecke 1a13e8aef8 Bug 1645328 - Add in-place constructor to Maybe. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79448
2020-06-15 09:04:02 +00:00
Brindusan Cristian bff7221969 Backed out changeset 5200dd8a0de5 (bug 1645328) for cppunit assertion failures at Maybe.h. CLOSED TREE 2020-06-12 20:12:37 +03:00
Simon Giesecke af931b95e6 Bug 1645328 - Add in-place constructor to Maybe. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79448
2020-06-12 14:42:26 +00:00
John Paul Adrian Glaubitz eac5e496ab Bug 1325771 - mfbt:tests: Define RETURN_INSTR for m68k in TestPoisonArea r=glandium
Define RETURN_INSTR for m68k in TestPoisonArea, i.e. the m68k assembly
opcodes for "rts ; rts".

Differential Revision: https://phabricator.services.mozilla.com/D77290
2020-06-06 06:45:53 +00:00
John Paul Adrian Glaubitz 44fad57771 Bug 1325771 - mfbt:tests: Handle targets with less strict alignment in TestCompactPair r=jesup
Previously, the tests assumed that the alignment of int and long equals
their size. This commit fixes the tests for targets like m68k that have
sizeof(int) == 4 and alignof(int) == 2. A static helper function sizemax
was introduced as the offset of the second element in Pair<int,long>
might be either determined by its alignment requirement or the size of
the preceding int element and we use the helper function to pick the
larger of the two values.

Differential Revision: https://phabricator.services.mozilla.com/D77289
2020-06-06 06:45:53 +00:00
John Paul Adrian Glaubitz 319d3205ce Bug 1325771 - mfbt: Reorder parameters for MOZ_ALIGNED_DECL r=jwalden
Currently, MOZ_ALIGNED_DECL uses the order (_type, _align) for its
parameters. However, this order makes the code less readable when
_type is a larger object like a struct because the value for _align
would be at the end of the struct definition. By swapping the order
of _type and _align, the alignment value will always be next to
the type name, regardless how far the definition of _type extends.

Differential Revision: https://phabricator.services.mozilla.com/D77288
2020-06-03 18:31:06 +00:00
Dorel Luca 0154691eae Backed out 5 changesets (bug 1325771) for Spidermonkey failures and build bustage in build/src/mfbt/tests/TestCompactPair.cpp. CLOSED TREE
Backed out changeset ace40545b46c (bug 1325771)
Backed out changeset b3e0fb410a1c (bug 1325771)
Backed out changeset d69ac62c063f (bug 1325771)
Backed out changeset 24e6299e112d (bug 1325771)
Backed out changeset 393a6ff847ce (bug 1325771)
2020-06-03 20:23:08 +03:00
John Paul Adrian Glaubitz 196d2e2764 Bug 1325771 - mfbt:tests: Define RETURN_INSTR for m68k in TestPoisonArea r=glandium
Define RETURN_INSTR for m68k in TestPoisonArea, i.e. the m68k assembly
opcodes for "rts ; rts".

Depends on D77289

Differential Revision: https://phabricator.services.mozilla.com/D77290
2020-06-02 07:01:56 +00:00
John Paul Adrian Glaubitz 5e52229a75 Bug 1325771 - mfbt:tests: Handle targets with less strict alignment in TestCompactPair r=jesup
Previously, the tests assumed that the alignment of int and long equals
their size. This commit fixes the tests for targets like m68k that have
sizeof(int) == 4 and alignof(int) == 2. A static helper function sizemax
was introduced as the offset of the second element in Pair<int,long>
might be either determined by its alignment requirement or the size of
the preceding int element and we use the helper function to pick the
larger of the two values.

Depends on D77288

Differential Revision: https://phabricator.services.mozilla.com/D77289
2020-06-01 22:48:50 +00:00
John Paul Adrian Glaubitz ea002ac55c Bug 1325771 - mfbt: Reorder parameters for MOZ_ALIGNED_DECL r=jwalden
Currently, MOZ_ALIGNED_DECL uses the order (_type, _align) for its
parameters. However, this order makes the code less readable when
_type is a larger object like a struct because the value for _align
would be at the end of the struct definition. By swapping the order
of _type and _align, the alignment value will always be next to
the type name, regardless how far the definition of _type extends.

Depends on D77287

Differential Revision: https://phabricator.services.mozilla.com/D77288
2020-06-03 16:51:08 +00:00
Sylvestre Ledru 63be8d152d Bug 1519636 - Reformat recent changes to the Google coding style r=necko-reviewers,dragana
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D77580
2020-05-30 09:55:27 +00:00
Nathan Froyd 5416a2fae6 Bug 1635359 - remove bounds checks on trivial `span_iterator` construction; r=sg
There's no need to provide the compiler a bunch of stuff that it's
trivially going to optimize away anyway, and we'd rather the release
assert not mess with the optimizer's view of the code.

Differential Revision: https://phabricator.services.mozilla.com/D77124
2020-05-28 11:17:42 +00:00
Nathan Froyd 9dcf479947 Bug 1635359 - provide a private constructor for `span_iterator` to bypass bounds checks; r=sg
The compiler is not always able to remove these (always-successful)
checks, so we might as well help it along.

Depends on D77122

Differential Revision: https://phabricator.services.mozilla.com/D77123
2020-05-28 10:05:38 +00:00
Nathan Froyd 1dc3de3520 Bug 1635359 - rename Span type parameter for `span_iterator`; r=sg
We're going to introduce some friend declarations in the next patch, and
this change makes doing so easier.  It's also slightly less confusing.

Depends on D77121

Differential Revision: https://phabricator.services.mozilla.com/D77122
2020-05-28 10:03:06 +00:00
Nathan Froyd f747ca618f Bug 1635359 - remove release asserts for `span_iterator` {de,in}crement; r=sg
These are redundant with the checks that we already have for dereferencing.

Depends on D77120

Differential Revision: https://phabricator.services.mozilla.com/D77121
2020-05-28 09:56:06 +00:00
Nathan Froyd 9c05dc1217 Bug 1635359 - eliminate release assert in const `span_iterator` construction; r=sg
Differential Revision: https://phabricator.services.mozilla.com/D77120
2020-05-28 09:54:37 +00:00
Chris Fronk dfcd4afc6e Bug 1433142 - Add support for hashing enum values. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D70647
2020-05-27 23:44:51 +00:00
Jon Bauman c3c1e322ad Bug 1639637 - Add Maybe method to move out contents leaving Nothing() behind. r=froydnj
Add take() and extract() methods returning Maybe<T> and T respectively.

Differential Revision: https://phabricator.services.mozilla.com/D76526
2020-05-22 19:46:07 +00:00
Bob Owen 3dc49fb3d2 Bug 1639958 part 2: Add Buffer::AllocForOverwrite to fallibly create a default-initialized Buffer. r=froydnj
This also uses MakeUniqueForOverwrite* in two places where we immediately copy
over the Buffer from a Span.
Adds move assignment operator as well.

Differential Revision: https://phabricator.services.mozilla.com/D75510
2020-05-22 07:48:02 +00:00
Bob Owen c7b447903d Bug 1639958 part 1: Add MakeUniqueForOverwrite and MakeUniqueForOverwriteFallible helpers. r=froydnj
These are the equivalent of std::make_unique_for_overwrite and std::make_unique_for_overwrite with fallible allocation.

Differential Revision: https://phabricator.services.mozilla.com/D75509
2020-05-22 07:22:28 +00:00
Chris Fronk 2f903c4542 Bug 1624495 - Support move only arguments such as UniquePtr in FunctionRef. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D68707
2020-05-21 01:56:57 +00:00
Simon Giesecke 2547c1a621 Bug 1637605 - Make ToResultInvoke work with stdcall functions on Windows. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D75938
2020-05-19 13:15:58 +00:00
Simon Giesecke f5342d154a Bug 1637605 - Add support for polymorphic return values to ToResultInvoke. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D75294
2020-05-19 09:07:08 +00:00
Simon Giesecke 24e5290fb8 Bug 1637605 - Provide adapter from functions with R*/R& output parameter and nsresult return type to Result<R, nsresult> return type. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D75091
2020-05-19 08:25:54 +00:00
Simon Giesecke f29e73f1c3 Bug 1637599 - Rephrase documentation referring to copies of errors. r=froydnj
The phrase "copy the error" is misleading, as the error type might not be
copyable, and it is never copied but moved. "Propagate" the error seems to
be a good term to describe this.

Differential Revision: https://phabricator.services.mozilla.com/D75093
2020-05-13 15:44:31 +00:00
Simon Giesecke 4a309d690e Bug 1637599 - Simplify propagation of error results. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D75090
2020-05-13 15:44:31 +00:00
Simon Giesecke f07c441f41 Bug 1636114 - Add Span::AsConst method. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D74232
2020-05-11 09:27:40 +00:00
Chris Fronk af8a02cc9d Bug 1512991 - Add JsonWriteFunc::Write to take string length. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72560
2020-05-08 16:24:31 +00:00
Greg V e65e9412b0 Bug 1634205 - Support Gecko Profiler and Base Profiler on FreeBSD r=mstange
- supports amd64 and arm64 (aarch64)
- uses LUL for stack walking

Differential Revision: https://phabricator.services.mozilla.com/D73162
2020-05-06 17:44:19 +00:00
Simon Giesecke 736ed67de5 Bug 1634003 - Add MovingNotNull class template. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D73032
2020-05-05 09:09:13 +00:00
Simon Giesecke ddfa9fe2d2 Bug 1633719 - Make NotNull move its member pointer where possible. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D72827
2020-05-05 09:09:01 +00:00
Shishir Jaiswal a285d5eb51 Bug 1629429 - Removing optional second argument in static_assert() r=sylvestre
The seconds argument for diagnostic message is optional from C++17

Differential Revision: https://phabricator.services.mozilla.com/D73556
2020-05-02 21:51:13 +00:00
Simon Giesecke 74b75d282b Bug 1634023 - Add deduction guides for Span. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D73040
2020-04-29 16:04:56 +00:00
Simon Giesecke 8f5212cd79 Bug 1634014 - Allow Span to be created from two Span iterators. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D73039
2020-04-29 15:20:50 +00:00
Simon Giesecke 2e99dc5200 Bug 1633809 - Suppress -Wpointer-bool-conversion in WrapNotNullUnchecked. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D73013
2020-04-29 14:04:09 +00:00
Andrew McCreight 1237ea289b Bug 1631274 - Make SegmentedVector::InfallibleAppend failures into OOM crashes. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D71581
2020-04-28 14:00:21 +00:00
Simon Giesecke 8f84ea1eaa Bug 1631709 - NotNull must not be movable. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D71721
2020-04-28 11:23:05 +00:00
Simon Giesecke 46314aa8d2 Bug 1633350 - Add SplitAt method to mozilla::Span. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D72605
2020-04-27 11:16:30 +00:00
Simon Giesecke e8a20bbe1c Bug 1633350 - Add deduction guide for constructing Span from a plain array. r=hsivonen
Differential Revision: https://phabricator.services.mozilla.com/D72604
2020-04-27 16:46:57 +00:00
Eric Rahm 01f450a03a Bug 1632613 - Part 1: Add a void** version of UniquePtr getter_Transfers. r=KrisWright
This adds a `void**` version fo `getter_Transfers` that is needed by the last remaining nsAutoPtr user in XSLT.

Differential Revision: https://phabricator.services.mozilla.com/D72431
2020-04-27 22:13:52 +00:00
André Bargull ccbf88b7b0 Bug 1626587 - Part 4: Remove mozilla::IsPod for HashMapEntry. r=jwalden
The `mozilla::IsPod<HashMapEntry` specialisation was only needed for the static
assertions in "js/src/frontend/NameCollections.h". Part 3 removed those, so we
can now also remove `mozilla::IsPod<HashMapEntry`.

Drive-by change:
- Remove no longer needed "mozilla/PodOperations.h" include in mfbt/HashTable.h.
- And then fix up previously transitively included files for RootingAPI.h,
  jsfriendapi.h, and Bench.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D69201
2020-04-27 12:00:48 +00:00
Simon Giesecke 2d8c4390b7 Bug 1628715 - Part 15: Replace MOZ_NONNULL_RETURN by returning NotNull<elem_type*>. r=xpcom-reviewers,necko-reviewers,dragana,nika
Differential Revision: https://phabricator.services.mozilla.com/D71300
2020-04-24 13:35:27 +00:00
Simon Giesecke 9a017967d6 Bug 1628715 - Part 14: Add MOZ_NONNULL_RETURN attribute on NotNull::operator->. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D71299
2020-04-24 13:33:55 +00:00
Simon Giesecke e6e6d49af2 Bug 1628715 - Part 13: Add specialization NotNull<T*> with MOZ_NONNULL_RETURN attributes. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D71298
2020-04-24 13:33:48 +00:00
Simon Giesecke 1961cd994a Bug 1628715 - Part 12: Add WrapNotNullUnchecked for NotNull<T*>. r=xpcom-reviewers,nika,jwalden
Differential Revision: https://phabricator.services.mozilla.com/D71296
2020-04-24 13:33:35 +00:00
Steve Fink 36169fa9e9 Bug 1626772 - Fixes for gcc 9 warnings r=botond
Differential Revision: https://phabricator.services.mozilla.com/D69275

--HG--
extra : moz-landing-system : lando
2020-04-10 20:40:03 +00:00
Mihai Alexandru Michis f2e4ef7d2a Backed out 3 changesets (bug 1626772) for causing bustages in DefineEnum.h
CLOSED TREE

Backed out changeset f42150bdee2b (bug 1626772)
Backed out changeset ab5b637f714a (bug 1626772)
Backed out changeset fd4026a9f380 (bug 1626772)
2020-04-10 03:49:33 +03:00
Steve Fink a0f2e976ce Bug 1626772 - Fixes for gcc 9 warnings r=botond
Differential Revision: https://phabricator.services.mozilla.com/D69275

--HG--
extra : moz-landing-system : lando
2020-04-02 17:59:46 +00:00
Chris Peterson a6d592bbe2 Bug 1620152 - Part 4: Replace MOZ_DIAGNOSTIC_ALWAYS_TRUE() with MOZ_ALWAYS_TRUE(). r=janv
MOZ_ALWAYS_TRUE() evaluates its expression in both debug and release builds. This bug will change MOZ_ALWAYS_TRUE() to use MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT(), so MOZ_DIAGNOSTIC_ALWAYS_TRUE() will be redundant.

Differential Revision: https://phabricator.services.mozilla.com/D66922

--HG--
extra : moz-landing-system : lando
2020-04-09 02:08:10 +00:00
Chris Peterson ceb9bb69c5 Bug 1620152 - Part 3: Implement MOZ_ALWAYS_TRUE()/etc using MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT(). r=froydnj
MOZ_ALWAYS_TRUE() evaluates its expression in both debug and release builds. This bug will change MOZ_ALWAYS_TRUE() to use MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT() so it will also assert in Nightly and DevEdition release builds.

Differential Revision: https://phabricator.services.mozilla.com/D66921

--HG--
extra : moz-landing-system : lando
2020-04-09 02:07:00 +00:00
Sebastian Hengst 88bbcf97df Backed out 4 changesets (bug 1620152) because it blocks the backout of bug 1626967. a=backout
Backed out changeset c6fe172dd237 (bug 1620152)
Backed out changeset a13507db74f7 (bug 1620152)
Backed out changeset 005a31ffa4bf (bug 1620152)
Backed out changeset 9c80be97934f (bug 1620152)
2020-04-08 10:06:27 +02:00
Chris Peterson 46bb24451b Bug 1620152 - Part 4: Replace MOZ_DIAGNOSTIC_ALWAYS_TRUE() with MOZ_ALWAYS_TRUE(). r=janv
MOZ_ALWAYS_TRUE() evaluates its expression in both debug and release builds. This bug will change MOZ_ALWAYS_TRUE() to use MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT(), so MOZ_DIAGNOSTIC_ALWAYS_TRUE() will be redundant.

Differential Revision: https://phabricator.services.mozilla.com/D66922

--HG--
extra : moz-landing-system : lando
2020-04-08 04:35:01 +00:00
Chris Peterson fbe277226d Bug 1620152 - Part 3: Implement MOZ_ALWAYS_TRUE()/etc using MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT(). r=froydnj
MOZ_ALWAYS_TRUE() evaluates its expression in both debug and release builds. This bug will change MOZ_ALWAYS_TRUE() to use MOZ_DIAGNOSTIC_ASSERT() instead of MOZ_ASSERT() so it will also assert in Nightly and DevEdition release builds.

Differential Revision: https://phabricator.services.mozilla.com/D66921

--HG--
extra : moz-landing-system : lando
2020-04-08 06:02:36 +00:00
Timothy Gu bfaebdfe1e Bug 1627285 - Check for NaN before std::min/max() in DOMQuad and DOMRect. r=emilio,jwalden
Tests were added as a part of bug 1626471. Expectations that the tests fail
have been removed.

Differential Revision: https://phabricator.services.mozilla.com/D69605

--HG--
extra : moz-landing-system : lando
2020-04-07 22:27:36 +00:00
Simon Giesecke e3d1db10d9 Bug 1626884 - Make RC non-copyable and declare operator= only in debug builds. r=froydnj
RC should be non-copyable. It already is non-copyable in the atomic variant,
but not in the non-atomic variant. This ensures that RefCounted is also
non-copyable, which prevents that classes deriving from RefCounted get
accidentally copied.

Also, RC's operator= should be defined only in debug builds. As already
described in a code comment, it's only used in debug builds (to assign the
dead value), and otherwise no modifications other than incrementing &
decrementing should be possible.

Differential Revision: https://phabricator.services.mozilla.com/D69332

--HG--
extra : moz-landing-system : lando
2020-04-06 09:17:34 +00:00
Sylvestre Ledru 0aa6f03cf3 Bug 1519636 - Reformat recent changes to the Google coding style r=jgilbert
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D67574

--HG--
extra : moz-landing-system : lando
2020-04-05 13:34:58 +00:00
Narcis Beleuzu f6ebb84618 Backed out 2 changesets (bug 1626884, bug 1627198) for bustages on ElfLoader.h CLOSED TREE
Backed out changeset b545e60f385c (bug 1627198)
Backed out changeset 16ee5dd004d3 (bug 1626884)

--HG--
extra : histedit_source : 21258c723c796773307977dabbd50de5aba6bd34
2020-04-03 21:56:38 +03:00
Simon Giesecke d522d12fb3 Bug 1626884 - Make RC non-copyable and declare operator= only in debug builds. r=froydnj
RC should be non-copyable. It already is non-copyable in the atomic variant,
but not in the non-atomic variant. This ensures that RefCounted is also
non-copyable, which prevents that classes deriving from RefCounted get
accidentally copied.

Also, RC's operator= should be defined only in debug builds. As already
described in a code comment, it's only used in debug builds (to assign the
dead value), and otherwise no modifications other than incrementing &
decrementing should be possible.

Differential Revision: https://phabricator.services.mozilla.com/D69332

--HG--
extra : moz-landing-system : lando
2020-04-03 14:27:17 +00:00
Gurzau Raul 76614a9f25 Bug 1626267 - fix build bustage r=bustage-fix on a CLOSED TREE 2020-04-01 19:29:19 +03:00
Simon Giesecke 94fa08db9c Bug 1626267 - Added transformation algorithms with error handling. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68994

--HG--
extra : moz-landing-system : lando
2020-04-01 15:53:58 +00:00
Simon Giesecke 84dd9a7ef6 Bug 1626197 - Remove custom copy/move operations on EnumeratedArray. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68972

--HG--
extra : moz-landing-system : lando
2020-03-31 13:17:21 +00:00
Chris Fronk 62d6d7db0e Bug 1345842 - Add Ignore to allow ignore elements in Tie. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68742

--HG--
extra : moz-landing-system : lando
2020-03-31 12:36:22 +00:00
Simon Giesecke 237efbb270 Bug 1625871 - InitializedOnce<const T> should be a literal type for literal types T. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68759

--HG--
extra : moz-landing-system : lando
2020-03-31 08:21:11 +00:00
Simon Giesecke 3eeb9d7e2d Bug 1625869 - Maybe<T> should be trivially destructible for move-only T. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68758

--HG--
extra : moz-landing-system : lando
2020-03-31 08:20:58 +00:00
Bogdan Tara d6d7d84fec Backed out 2 changesets (bug 1625871, bug 1625869) for gtest assertions on Maybe.h CLOSED TREE
Backed out changeset 8dee41ad98cf (bug 1625871)
Backed out changeset 39fbc765525b (bug 1625869)
2020-03-30 17:29:09 +03:00
Simon Giesecke df70dae59a Bug 1625871 - InitializedOnce<const T> should be a literal type for literal types T. r=froydnj
Depends on D68758

Differential Revision: https://phabricator.services.mozilla.com/D68759

--HG--
extra : moz-landing-system : lando
2020-03-30 12:27:10 +00:00
Simon Giesecke b30450b50d Bug 1625869 - Maybe<T> should be trivially destructible for move-only T. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68758

--HG--
extra : moz-landing-system : lando
2020-03-30 12:26:58 +00:00
André Bargull cc2bfc7ab8 Bug 1625473: Use type traits for AbsReturnType. r=froydnj
Also removes the comment which allows adding more `AbsReturnType` specialisations,
because that shouldn't be necessary anymore.

Differential Revision: https://phabricator.services.mozilla.com/D68569

--HG--
extra : moz-landing-system : lando
2020-03-28 16:07:06 +00:00
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

Differential Revision: https://phabricator.services.mozilla.com/D68561

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
André Bargull 13bfe75b97 Bug 1625138 - Part 40: Replace remaining mozilla::IsSame with std::is_same. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68560

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:21 +00:00
André Bargull 5992327185 Bug 1625138 - Part 36: Replace mozilla::IsSame with std::is_same in mfbt/. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68555

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:20 +00:00
André Bargull 2712714d84 Bug 1625138 - Part 35: Replace mozilla::TrueType with std::true_type. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68554

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:20 +00:00
André Bargull f8eb4c162e Bug 1625138 - Part 34: Replace mozilla::FalseType with std::false_type. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68553

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:20 +00:00
André Bargull 9de017ffb8 Bug 1625138 - Part 33: Replace mozilla::IntegralConstant with std::integral_constant. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68552

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull 32cb16fc45 Bug 1625138 - Part 32: Replace mozilla::RemoveConst with std::remove_const. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68551

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull 8fae6ee9a8 Bug 1625138 - Part 31: Replace mozilla::RemoveVolatile with std::remove_volatile. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68549

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull 8d7aa62e32 Bug 1625138 - Part 29: Replace mozilla::IsVoid with std::is_void. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68548

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull cf0b1e89e9 Bug 1625138 - Part 30: Replace mozilla::RemoveCV with std::remove_cv. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68547

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull 95c76a6863 Bug 1625138 - Part 28: Replace mozilla::AddRvalueReference with std::add_rvalue_reference. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68546

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull 42d4ebbda9 Bug 1625138 - Part 27: Replace mozilla::DeclVal with std::declval. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68545

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull cae4e1fdbc Bug 1606962: Replace mozilla::EnableIf with std::enable_if. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68401

--HG--
extra : moz-landing-system : lando
2020-03-28 13:35:31 +00:00
André Bargull 1be056677a Bug 1625138 - Part 26: Replace mozilla::Conditional with std::conditional. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68381

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull 3ee851a1a5 Bug 1625138 - Part 25: Replace mozilla::RemoveReference with std::remove_reference. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68380

--HG--
extra : moz-landing-system : lando
2020-03-28 14:16:19 +00:00
André Bargull 08a8c3fc78 Bug 1625138 - Part 24: Replace mozilla::IsConvertible with std::is_convertible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68379

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull d53798e749 Bug 1625138 - Part 23: Replace mozilla::RemovePointer with std::remove_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68378

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull 44a255a4d6 Bug 1625138 - Part 22: Replace mozilla::IsArray with std::is_array. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68377

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull 85dfbced09 Bug 1625138 - Part 21: Replace mozilla::IsFunction with std::is_function. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68376

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:16 +00:00
André Bargull 0731a50d34 Bug 1625138 - Part 20: Replace mozilla::IsVolatile with std::is_volatile. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68375

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:16 +00:00
André Bargull 1455e95dc1 Bug 1625138 - Part 19: Replace mozilla::RemoveExtent with std::remove_extent. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68374

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:16 +00:00
André Bargull b2e7397c33 Bug 1625138 - Part 18: Replace mozilla::AddPointer with std::add_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68373

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:16 +00:00
André Bargull a08be4177e Bug 1625138 - Part 17: Replace mozilla::Decay with std::decay. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68372

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull ebec34a898 Bug 1625138 - Part 16: Replace mozilla::IsIntegral with std::is_integral. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68371

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 1f5d157732 Bug 1625138 - Part 15: Replace mozilla::IsFloatingPoint with std::is_floating_point. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68370

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 13e9ad3137 Bug 1625138 - Part 14: Replace mozilla::IsSigned with std::is_signed. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68369

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull 9ad58ea608 Bug 1625138 - Part 13: Replace mozilla::IsUnsigned with std::is_unsigned. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68368

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:14 +00:00
André Bargull b0c9db06e3 Bug 1625138 - Part 12: Replace mozilla::IsPointer with std::is_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68366

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:14 +00:00
André Bargull 907be0b57b Bug 1625138 - Part 11: Replace mozilla::IsConst with std::is_const. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68365

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:14 +00:00
André Bargull 4ac8916451 Bug 1625138 - Part 10: Replace mozilla::IsEnum with std::is_enum. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68364

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:13 +00:00
André Bargull aae2042c40 Bug 1625138 - Part 9: Replace mozilla::IsArithmetic with std::is_arithmetic. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68363

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:13 +00:00
André Bargull 76a01325a7 Bug 1625138 - Part 8: Replace mozilla::IsMemberPointer with std::is_member_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68362

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:13 +00:00
André Bargull be0f9ade3d Bug 1625138 - Part 7: Replace mozilla::IsScalar with std::is_scalar. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68361

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:13 +00:00
André Bargull 086c1b8be3 Bug 1625138 - Part 6: Replace mozilla::IsClass with std::is_class. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68360

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:12 +00:00
André Bargull e7d63cc0a3 Bug 1625138 - Part 5: Replace mozilla::IsDefaultConstructible with std::is_default_constructible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68359

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:12 +00:00
André Bargull 1e4d8b891e Bug 1625138 - Part 4: Replace mozilla::MakeUnsigned with std::make_unsigned. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68358

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:12 +00:00
André Bargull 526c7e70fc Bug 1625138 - Part 3: Replace mozilla::IsEmpty with std::is_empty. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68357

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:11 +00:00
André Bargull 48227ef019 Bug 1625138 - Part 2: Replace mozilla::AddLvalueReference with std::add_lvalue_reference. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68356

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:11 +00:00
André Bargull bf1ba829c8 Bug 1625138 - Part 1: Replace mozilla::MakeSigned with std::make_signed. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68355

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:11 +00:00
Simon Giesecke d3deabac64 Bug 1613363 - Maybe<T> should preserve trivial copy-constructability and destructability of T. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68173

--HG--
extra : moz-landing-system : lando
2020-03-27 14:22:51 +00:00
Simon Giesecke 0cc5c6e63f Bug 1052940 - Make Maybe<T> only declare copy/move operations if T is copyable/movable. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68172

--HG--
extra : moz-landing-system : lando
2020-03-27 14:10:45 +00:00
Simon Giesecke 79b5dc835f Bug 1625143 - Add returns_nonnull attributes to moz_x allocation routines. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D68367

--HG--
extra : moz-landing-system : lando
2020-03-27 07:33:28 +00:00
Christian Holler c248943491 Bug 1620326 - Add a separate TSan suppression list for the updater. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D67125

--HG--
extra : moz-landing-system : lando
2020-03-26 21:19:24 +00:00
alwu c90111145c Bug 1620113 - part1 : support `contain` and `length` for LinkedList. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D66854

--HG--
extra : moz-landing-system : lando
2020-03-18 22:14:59 +00:00
Chris Fronk 048799bff2 Bug 1490781 - Add FunctionRef, a non-owning reference to a callable value (function pointer, lambda, etc.). r=botond
Differential Revision: https://phabricator.services.mozilla.com/D62684

--HG--
extra : moz-landing-system : lando
2020-03-24 00:12:41 +00:00
Sylvestre Ledru 734f79b541 Bug 1624237 - Run misc-unused-using-decls - Remove useless declarations r=andi
$ ./mach static-analysis check --checks="-*, misc-unused-using-decls" --fix <path>

Differential Revision: https://phabricator.services.mozilla.com/D67811

--HG--
extra : moz-landing-system : lando
2020-03-23 13:15:33 +00:00
Simon Giesecke a22b36fb7a Bug 1620568 - Disable equality comparison operators for Maybe<T&>. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D67135

--HG--
extra : moz-landing-system : lando
2020-03-18 13:24:17 +00:00
Chris Fronk d5b004443b Bug 1143478 - Rename mozilla::Pair to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64511

--HG--
rename : mfbt/Pair.h => mfbt/CompactPair.h
extra : moz-landing-system : lando
2020-03-17 12:42:12 +00:00
Gerald Squelart 056a867f22 Bug 1621865 - Variant matchers may optionally take the current index as first parameter - r=froydnj
Depends on D66719

Differential Revision: https://phabricator.services.mozilla.com/D66720

--HG--
extra : moz-landing-system : lando
2020-03-13 21:56:47 +00:00
Gerald Squelart 9c1f5b9571 Bug 1621865 - In Variant::match(), forward the callback before invoking it - r=froydnj
`std::forward(invocable)()` ensures that the optimal callback is invoked, in
case there are different versions with different reference qualifiers.
E.g., an rvalue-reference-qualified member function could std::move() from class
members, because the object is about to be destroyed anyway.

Differential Revision: https://phabricator.services.mozilla.com/D66719

--HG--
extra : moz-landing-system : lando
2020-03-13 15:23:25 +00:00
Chris Peterson 67b21f14a1 Bug 1622173 - Consolidate redundant MOZ_ALWAYS_TRUE/FALSE/OK/ERR definitions. r=froydnj
MOZ_ASSERT(false) will evaluate to a no-op in release builds, so there should be no overhead from using MOZ_ASSERT(false) to define MOZ_ALWAYS_TRUE/FALSE/OK/ERR in both debug and release.

Differential Revision: https://phabricator.services.mozilla.com/D66797

--HG--
extra : moz-landing-system : lando
2020-03-13 17:47:14 +00:00
Simon Giesecke 84fb884937 Bug 1620568 - Add support for Maybe<T&>. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D66068

--HG--
extra : moz-landing-system : lando
2020-03-12 14:54:28 +00:00
shindli b02b3a6e1a Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE
--HG--
rename : mfbt/CompactPair.h => mfbt/Pair.h
2020-03-11 14:30:54 +02:00
Chris Fronk a27e438c2d Bug 1143478 - Rename mozilla::Pair to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64511

--HG--
rename : mfbt/Pair.h => mfbt/CompactPair.h
extra : moz-landing-system : lando
2020-03-11 12:18:13 +00:00
Ryan VanderMeulen 3447644eab Bug 1620433 - Update xxHash to version 0.7.3. r=dthayer
Differential Revision: https://phabricator.services.mozilla.com/D65677

--HG--
extra : moz-landing-system : lando
2020-03-06 05:00:59 +00:00
Simon Giesecke 1fc7f24745 Bug 1597954 - Add a class template for objects that can only be initialized once. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63181

--HG--
extra : moz-landing-system : lando
2020-03-05 17:26:26 +00:00
Andrew McCreight 4babb2b5ab Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 17:39:15 +00:00
Ciure Andrei 00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Andrew McCreight b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Kris Maglione 64a2c8bb8f Bug 1535617: Part 1 - Add macros to clear weak references on unlink. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D63961

--HG--
extra : moz-landing-system : lando
2020-02-25 19:44:27 +00:00
Simon Giesecke b5fae19786 Bug 1617546 - Provide operator== for mozilla::Nothing. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63842

--HG--
extra : moz-landing-system : lando
2020-02-24 17:53:39 +00:00
Eric Rahm fd0824a8e6 Bug 1617327 - Part 1: Add getter_Transfers to UniquePtrExtensions. r=KrisWright
This adds a `getter_Transfers` implementation for `UniquePtr` suitable as a drop-in replacement for the `nsAutoPtr` variant.

Differential Revision: https://phabricator.services.mozilla.com/D63744

--HG--
extra : moz-landing-system : lando
2020-02-24 23:27:56 +00:00
Cosmin Sabou 7f1afff492 Backed out 5 changesets (bug 1617604, bug 1617542, bug 1617546) for causing build bustages on ipc/mscom/Interceptor.cpp.
CLOSED TREE

Backed out changeset 5faa54ad950e (bug 1617542)
Backed out changeset cb38779e1eb6 (bug 1617604)
Backed out changeset 3aea18e0396f (bug 1617542)
Backed out changeset bc3eeefdfb6c (bug 1617542)
Backed out changeset b76a3aa5ff6f (bug 1617546)
2020-02-24 19:50:13 +02:00
Simon Giesecke 24ebaad98d Bug 1617546 - Provide operator== for mozilla::Nothing. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63842

--HG--
extra : moz-landing-system : lando
2020-02-24 16:15:20 +00:00
Sylvestre Ledru ca6530131a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan,kvark
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D63787

--HG--
extra : moz-landing-system : lando
2020-02-24 15:33:38 +00:00
David Major fe1a68d948 Bug 1617216 - Stop using IsBadXPtr in TestPoisonArea.cpp r=froydnj
Use of Windows' IsBadReadPtr/IsBadWritePtr has long been discouraged, but more pressingly, TestPoisonArea's hand-written IsBadExecPtr breaks CFG rules under clang-10.

Differential Revision: https://phabricator.services.mozilla.com/D63685

--HG--
extra : moz-landing-system : lando
2020-02-21 19:23:02 +00:00
Tom Ritter c660f80b38 Bug 1610017 - Actually taint data when tainted is specified for IPC methods r=nika
Differential Revision: https://phabricator.services.mozilla.com/D60532

--HG--
extra : moz-landing-system : lando
2020-02-21 17:24:17 +00:00
Boris Zbarsky acaa2133b1 Bug 1616684. Remove implicit integer conversion in CheckedInt constructor r=froydnj
When I try to enable -Wconversion, CheckedInt triggers it because it has an
implicit type conversion in its templated two-arg constructor.

That constructor doesn't really need to be templated, as far as I can tell.

Differential Revision: https://phabricator.services.mozilla.com/D63384

--HG--
extra : moz-landing-system : lando
2020-02-20 14:16:03 +00:00
Jeff Walden ad64e8c503 Bug 1614243 - Make mfbt/DbgMacro.h use standard variadic macro syntax, not gcc/clang extension syntax. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63283

--HG--
extra : moz-landing-system : lando
2020-02-19 10:44:31 +00:00
Boris Zbarsky 8303e25004 Improve documentation for MOZ_CAN_RUN_SCRIPT_BOUNDARY. No bug. r=mbrodesser,nika
Differential Revision: https://phabricator.services.mozilla.com/D62955

--HG--
extra : moz-landing-system : lando
2020-02-19 02:50:58 +00:00
Simon Giesecke b50347f917 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-13 14:38:48 +00:00
Simon Giesecke ad6c02c994 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in mfbt. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62542

--HG--
extra : moz-landing-system : lando
2020-02-13 11:20:27 +00:00
shindli 91aa0518dd Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke f604a47fa5 Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-12 17:24:41 +00:00
Mihai Alexandru Michis 395eb2050d Backed out changeset f3d9fbb2daf1 (bug 1613985) for causing hazard bustages on Linux.
CLOSED TREE
2020-02-12 16:43:30 +02:00
Simon Giesecke 066ea869b7 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in mfbt. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62542

--HG--
extra : moz-landing-system : lando
2020-02-12 11:13:24 +00:00
Emilio Cobos Álvarez 6311bc2129 Bug 1614512 - Give mozilla::Side and mozilla::Corner a fixed underlying type. r=froydnj
So as to avoid UB. It is somewhat unfortunate/dumb the fact that we need to do
this and we can't detect when we forget to do it :(

Give it uint8_t as it's type as that's enough and consistent with LogicalSide.

Differential Revision: https://phabricator.services.mozilla.com/D62390

--HG--
extra : moz-landing-system : lando
2020-02-11 14:11:06 +00:00
David Major c8447603c3 Bug 1614003 - Remove unused file mfbt/NullPtr.h r=froydnj
C++14 has a replacement anyway.

Differential Revision: https://phabricator.services.mozilla.com/D62076

--HG--
extra : moz-landing-system : lando
2020-02-07 19:08:17 +00:00
Emilio Cobos Álvarez 33b4cfe736 Bug 1610702 - Generalize Vector::podResizeToFit into Vector::shrinkStorageToFit(). r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D61337

--HG--
extra : moz-landing-system : lando
2020-02-03 17:32:12 +00:00
Sylvestre Ledru 9a548aeff7 Bug 1611520 - gcc-10: Include <cstddef> in FunctionTypeTraits.h r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D61014

--HG--
extra : moz-landing-system : lando
2020-02-01 10:23:38 +00:00
Emily McDonough 238df6f736 Bug 1612536 - Make array iterator getters constexpr r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D61366

--HG--
extra : moz-landing-system : lando
2020-01-31 14:07:32 +00:00
Simon Giesecke c7bd77d920 Bug 1612135 - Allow Result<V, E> to be used with a MOZ_NON_PARAM_TYPE E. r=emilio,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D61214

--HG--
extra : moz-landing-system : lando
2020-01-29 21:22:39 +00:00
Ting-Yu Lin 8c351e2376 Bug 1610980 Part 2 - Add MakeInclusiveEnumeratedRange(). r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60753

--HG--
extra : moz-landing-system : lando
2020-01-27 08:01:55 +00:00
Ting-Yu Lin f5deea0c94 Bug 1610980 Part 1 - Use constexpr for classes and functions in EnumeratedRange.h. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60752

--HG--
extra : moz-landing-system : lando
2020-01-27 08:01:47 +00:00
Tom Ritter 8512ab7c40 Bug 1610039 - Create a Tainted<> class and macros to obtain validated raw values r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60531

--HG--
extra : moz-landing-system : lando
2020-01-23 22:19:32 +00:00
Perry Jiang c635cee728 Bug 1601024 - ThreadSafeWeakReference::tryDetach must acquire its lock r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60037

--HG--
extra : moz-landing-system : lando
2020-01-21 13:33:04 +00:00