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

2136 Коммитов

Автор SHA1 Сообщение Дата
Simon Giesecke 2b1eb28b6a Bug 1665927 - Use free LSB optimization for empty types with mozilla::Result. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D90699
2020-09-21 13:14:53 +00:00
Simon Giesecke c8ed33ab9d Bug 1665850 - Remove specifics for reference error types from mozilla::Result. r=emilio,jandem
Also update the documentation on optimizations and representation to
better reflect the current situation.

Differential Revision: https://phabricator.services.mozilla.com/D90662
2020-09-21 13:14:28 +00:00
Simon Giesecke eaa00050e4 Bug 1665850 - Switch JS to use non-reference errors with mozilla::Result. r=jandem
Also switch optimizations for HasFreeLSB and existing tests to no longer
use references.

Differential Revision: https://phabricator.services.mozilla.com/D90661
2020-09-21 13:14:10 +00:00
Simon Giesecke 2e065c64d6 Bug 1665614 - Make mozilla::Result work with non-copyable/non-param error types. r=emilio,jandem
Among other things, there were some misuses of std::forward, and
GenericErrorResult was (presumably accidentally) instatiated with
references as the template argument type, e.g. const nsresult&,
which circumvented the check for not calling it with NS_OK in
ResultExtensions.h

Differential Revision: https://phabricator.services.mozilla.com/D90561
2020-09-21 13:12:48 +00:00
Bogdan Tara 395ecea593 Backed out changeset a1e4531f2091 (bug 1666200) for TestResult.cpp related bustage CLOSED TREE 2020-09-21 15:55:42 +03:00
Simon Giesecke 2cf66d3f89 Bug 1666200 - Support in-place construction of Result success value. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D90839
2020-09-21 11:47:47 +00:00
Butkovits Atila 270e7e2200 Backed out 5 changesets (bug 1665927, bug 1665614, bug 1665850) for causing bustage on Result.h. CLOSED TREE
Backed out changeset 1467e76399e8 (bug 1665927)
Backed out changeset ebd4dfbc0a88 (bug 1665850)
Backed out changeset 5e23340e3b39 (bug 1665850)
Backed out changeset 5bc547e7a773 (bug 1665850)
Backed out changeset 8d88afb85a78 (bug 1665614)
2020-09-21 15:25:16 +03:00
Simon Giesecke 6b3d1793e7 Bug 1665927 - Use free LSB optimization for empty types with mozilla::Result. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D90699
2020-09-21 11:09:31 +00:00
Simon Giesecke f193981fb7 Bug 1665850 - Remove specifics for reference error types from mozilla::Result. r=emilio,jandem
Also update the documentation on optimizations and representation to
better reflect the current situation.

Differential Revision: https://phabricator.services.mozilla.com/D90662
2020-09-21 11:09:09 +00:00
Simon Giesecke 70bda1ef61 Bug 1665850 - Switch JS to use non-reference errors with mozilla::Result. r=jandem
Also switch optimizations for HasFreeLSB and existing tests to no longer
use references.

Differential Revision: https://phabricator.services.mozilla.com/D90661
2020-09-21 11:11:02 +00:00
Simon Giesecke 3b0420646e Bug 1665614 - Make mozilla::Result work with non-copyable/non-param error types. r=emilio,jandem
Among other things, there were some misuses of std::forward, and
GenericErrorResult was (presumably accidentally) instatiated with
references as the template argument type, e.g. const nsresult&,
which circumvented the check for not calling it with NS_OK in
ResultExtensions.h

Differential Revision: https://phabricator.services.mozilla.com/D90561
2020-09-21 10:38:19 +00:00
Simon Giesecke 0fef58f699 Bug 1664844 - Add DebugOnly::inspect member function. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D90133
2020-09-18 06:33:12 +00:00
Csoregi Natalia 2306d2079a Backed out 11 changesets (bug 1663924, bug 1664844) for multiple failures. CLOSED TREE
Backed out changeset 2da9fde7a109 (bug 1663924)
Backed out changeset 9353759cc783 (bug 1663924)
Backed out changeset 309354891d60 (bug 1663924)
Backed out changeset 4e51461c369c (bug 1663924)
Backed out changeset e3196b68932c (bug 1663924)
Backed out changeset 25b16cbae152 (bug 1664844)
Backed out changeset e02961ac5ee7 (bug 1663924)
Backed out changeset dde2058c20ef (bug 1663924)
Backed out changeset a80f52551e3a (bug 1663924)
Backed out changeset 0c37ce712c2c (bug 1663924)
Backed out changeset 8cc5dcc86f40 (bug 1663924)
2020-09-18 04:52:32 +03:00
Simon Giesecke db717b00e5 Bug 1664844 - Add DebugOnly::inspect member function. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D90133
2020-09-17 08:44:30 +00:00
Simon Giesecke 59cd4601d7 Bug 1663902 - Avoid gcc emitting lots of static constructors for UnusedZero<T&>::defaultValue. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D90359
2020-09-16 13:58:49 +00:00
Razvan Maries 559e163f24 Backed out 9 changesets (bug 1663924, bug 1664844) for Linux Mochitests leaks. CLOSED TREE
Backed out changeset 8d28611ac9b2 (bug 1663924)
Backed out changeset e0b0b3a19544 (bug 1663924)
Backed out changeset 884e286909f9 (bug 1663924)
Backed out changeset ffed28f0b547 (bug 1664844)
Backed out changeset 4c22c3c8aa28 (bug 1663924)
Backed out changeset fcaed021597c (bug 1663924)
Backed out changeset 30394cbcaaf6 (bug 1663924)
Backed out changeset 014bcf5d13b9 (bug 1663924)
Backed out changeset ccf09dfa817a (bug 1663924)
2020-09-16 19:16:21 +03:00
Simon Giesecke ab0b7510ad Bug 1665026 - Prevent ToResultInvoke from being instantiated with a raw pointer result type. r=janv
Differential Revision: https://phabricator.services.mozilla.com/D90264
2020-09-16 15:11:56 +00:00
Simon Giesecke 7c10b87921 Bug 1664844 - Add DebugOnly::inspect member function. r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D90133
2020-09-16 14:56:02 +00:00
Simon Giesecke 720fbb0265 Bug 1661404 - Add MOZ_TO_RESULT_INVOKE_TYPED macro. r=janv
Differential Revision: https://phabricator.services.mozilla.com/D90368
2020-09-16 10:18:19 +00:00
Gerald Squelart b3972fb3c4 Bug 1657033 - There is no more need for JSONWriteFunc::WriteLiteral - r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D86193
2020-09-14 01:48:39 +00:00
Gerald Squelart 782cf5d3ad Bug 1657033 - Use Span<const char> in JSONWriter - r=froydnj
In most situations, JSONWriter users already know string lengths (either directly, or through `nsCString` and friends), so we should keep this information through JSONWriter and not recompute it again.
This also allows using JSONWriter with sub-strings (e.g., from a bigger buffer), without having to create null-terminated strings.

Public JSONWriter functions have overloads that accept literal strings.

Differential Revision: https://phabricator.services.mozilla.com/D86192
2020-09-14 02:33:20 +00:00
Gerald Squelart 89b62c22de Bug 1657033 - Make `MakeStringSpan` constexpr - r=froydnj
MakeStringSpan("...") will be able to construct spans from string literals at compile time.

Differential Revision: https://phabricator.services.mozilla.com/D86190
2020-09-14 01:44:39 +00:00
Simon Giesecke 250dabd821 Bug 1663628 - Make Maybe::extract work with MOZ_NON_AUTOABLE type T. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D89445
2020-09-08 13:22:16 +00:00
Jan Varga d4d58eddc9 Bug 1663648 - Fix mozilla::Result::map's return type definition; r=dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D89457
2020-09-08 14:39:41 +00:00
Simon Giesecke 2d21df0e59 Bug 1661428 - Support PackingVariant::NullIsOk also with non-trivially-default-constructible V. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88444
2020-09-03 14:14:41 +00:00
Simon Giesecke d85bd68479 Bug 1661457 - Add in-place constructor to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88418
2020-09-02 17:56:35 +00:00
Simon Giesecke 5cacc3e1dc Bug 1661502 - Make Result move-only. r=froydnj,jandem
Differential Revision: https://phabricator.services.mozilla.com/D88443
2020-09-02 17:56:23 +00:00
Simon Giesecke bf7bd90871 Bug 1661497 - Make DebugOnly work with move-only value types. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88442
2020-09-02 17:56:10 +00:00
Simon Giesecke bd28698eb3 Bug 1661428 - Use CompactPair instead of Variant for trivially default-constructible V and UnusedZero E. r=froydnj
It seems that the clang toolchain has trouble optimizing away the tag access in
a `mozilla::Variant`. Use of a `CompactPair` seems to be better when `E` is
small (all cases where `UnusedZero<E>` is true are small right now anyway).
While this doesn't change `sizeof(Result<V, E>)` in most cases, it makes
the generated code simpler/smaller: As of now, this reduce the overall VM size
of libxul.so by ca. 59K.

Without additional effort, this requires and leads to default-construction of
a `V` even in cases where it is never accessed, so this is restricted to
trivially default-constructible `V` for now.

This could be avoided by replacing  `CompactPair<V, E>` by
`CompactPair<AlignedStorage2<V>, E>`.

Differential Revision: https://phabricator.services.mozilla.com/D88393
2020-09-02 17:55:55 +00:00
Razvan Maries eae150a880 Backed out 5 changesets (bug 1661457, bug 1661428, bug 1661497, bug 1661502) for build bustages on Result.h. CLOSED TREE
Backed out changeset fbf42b3b51f3 (bug 1661428)
Backed out changeset 83f3f36d540f (bug 1661457)
Backed out changeset 8a9dce0d08ce (bug 1661502)
Backed out changeset 733df139089a (bug 1661497)
Backed out changeset fca770fc0956 (bug 1661428)
2020-09-02 19:44:47 +03:00
Simon Giesecke 261cda7f20 Bug 1661428 - Support PackingVariant::NullIsOk also with non-trivially-default-constructible V. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88444
2020-09-02 16:31:43 +00:00
Simon Giesecke 156682b3c2 Bug 1661457 - Add in-place constructor to CompactPair. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88418
2020-09-02 16:23:13 +00:00
Simon Giesecke d4179392a0 Bug 1661502 - Make Result move-only. r=froydnj,jandem
Differential Revision: https://phabricator.services.mozilla.com/D88443
2020-09-02 16:23:01 +00:00
Simon Giesecke 80d380f0ed Bug 1661497 - Make DebugOnly work with move-only value types. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88442
2020-09-02 16:22:38 +00:00
Simon Giesecke d5f6d76c5a Bug 1661428 - Use CompactPair instead of Variant for trivially default-constructible V and UnusedZero E. r=froydnj
It seems that the clang toolchain has trouble optimizing away the tag access in
a `mozilla::Variant`. Use of a `CompactPair` seems to be better when `E` is
small (all cases where `UnusedZero<E>` is true are small right now anyway).
While this doesn't change `sizeof(Result<V, E>)` in most cases, it makes
the generated code simpler/smaller: As of now, this reduce the overall VM size
of libxul.so by ca. 59K.

Without additional effort, this requires and leads to default-construction of
a `V` even in cases where it is never accessed, so this is restricted to
trivially default-constructible `V` for now.

This could be avoided by replacing  `CompactPair<V, E>` by
`CompactPair<AlignedStorage2<V>, E>`.

Differential Revision: https://phabricator.services.mozilla.com/D88393
2020-09-02 16:22:25 +00:00
Kartikaya Gupta 49c359630a Bug 1661798 - Have the LinkedList destructor emit the buggy template specialization. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88663
2020-08-28 20:07:26 +00:00
Simon Giesecke 1997b4ea0d Bug 1661083 - Support raw pointers with MOZ_TO_RESULT_INVOKE. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88168
2020-08-28 15:50:49 +00:00
Simon Giesecke ff85972891 Bug 1661476 - Prevent Result<const V, E> or Result<V, const E> from being instantiated. r=froydnj
Also, remove the existing uses of Result<const nsCString, nsresult> in URLPreloader
and Result<CryptoScheme, const nsCString> in SampleIterator.

Differential Revision: https://phabricator.services.mozilla.com/D88419
2020-08-28 14:16:35 +00:00
Razvan Maries 7a010f17ae Backed out 11 changesets (bug 1661083, bug 1661085, bug 1661084) for build bustages on ResultExtensions.h. CLOSED TREE
Backed out changeset 962967831dd4 (bug 1661085)
Backed out changeset 8e61a7d2daf9 (bug 1661085)
Backed out changeset 1edbc081c9f0 (bug 1661085)
Backed out changeset c640f4126079 (bug 1661085)
Backed out changeset b5fc9ebaac12 (bug 1661085)
Backed out changeset 4e3faaadccb6 (bug 1661085)
Backed out changeset 522cdd011e03 (bug 1661085)
Backed out changeset 896e47fc24e3 (bug 1661085)
Backed out changeset bf4043d4ce8e (bug 1661085)
Backed out changeset d0162bb5012e (bug 1661084)
Backed out changeset f0e7db520938 (bug 1661083)
2020-08-28 16:27:58 +03:00
Simon Giesecke a7f224accb Bug 1661083 - Support raw pointers with MOZ_TO_RESULT_INVOKE. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D88168
2020-08-28 10:02:36 +00:00
Jan Varga ecaff7daea Bug 1659673 - Add the `mozilla::Result::orElse` method; r=froydnj,dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D87418
2020-08-24 14:44:50 +00:00
Jan Varga d749be0c59 Bug 1659660 - Improve documentation and testing for mozilla::Result::map and mozilla::Result::mapErr; r=froydnj,dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D87414
2020-08-20 11:04:12 +00:00
Butkovits Atila 850817430e Backed out 3 changesets (bug 1658874, bug 1658324, bug 1659660) for bustage at ActorsParent.cpp. CLOSED TREE
Backed out changeset b69e256013a3 (bug 1659660)
Backed out changeset 4939692a9047 (bug 1658874)
Backed out changeset e27fb7cd29fe (bug 1658324)
2020-08-20 13:57:20 +03:00
Jan Varga f66e9112b5 Bug 1659660 - Improve documentation and testing for mozilla::Result::map and mozilla::Result::mapErr; r=froydnj,dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D87414
2020-08-20 09:22:09 +00:00
Jeff Gilbert 0d33c47098 Bug 1656545 - Range cannot support nullptr with non-zero length. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D87528
2020-08-20 00:33:52 +00:00
Jan Varga 246bfa7db7 Bug 1659962 - Add additional MOZ_ARG_* macros; r=jwalden
Differential Revision: https://phabricator.services.mozilla.com/D87579
2020-08-19 14:31:40 +00:00
Jan Varga 8773058b99 Bug 1659909 - ToResultInvoke should also work with RefPtr/nsCOMPtr on win32; r=dom-workers-and-storage-reviewers,sg
Differential Revision: https://phabricator.services.mozilla.com/D87556
2020-08-19 14:34:06 +00:00
Eugen Sawin 9caff81fa1 Bug 1623715 - [4.1] Fix LinkedList::length() for a const context. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84543
2020-08-18 17:29:07 +00:00
Razvan Maries 1cad430a1a Backed out 7 changesets (bug 1623715) for build bustages on nsWindow.cpp. CLOSED TREE
Backed out changeset 9704afdeefb1 (bug 1623715)
Backed out changeset 2e7e298cfe27 (bug 1623715)
Backed out changeset 579df1a653ee (bug 1623715)
Backed out changeset 4361ef84e780 (bug 1623715)
Backed out changeset 898972ec680c (bug 1623715)
Backed out changeset a118a4d72bef (bug 1623715)
Backed out changeset 4ff55894774d (bug 1623715)
2020-08-18 18:38:43 +03:00
Eugen Sawin 9ee999f3c0 Bug 1623715 - [4.1] Fix LinkedList::length() for a const context. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84543
2020-08-18 14:37:27 +00:00
Dorel Luca 6e3ab7e5fa Backed out 7 changesets (bug 1623715) for Linting failure and android build bustage. CLOSED TREE
Backed out changeset c8ca1d1866e7 (bug 1623715)
Backed out changeset 1b7c3fb0da3b (bug 1623715)
Backed out changeset 4887dea37231 (bug 1623715)
Backed out changeset 47f3eb481909 (bug 1623715)
Backed out changeset 6e7ce9e5f89b (bug 1623715)
Backed out changeset ddff358f800e (bug 1623715)
Backed out changeset cd585490e79b (bug 1623715)
2020-08-18 00:20:24 +03:00
Eugen Sawin e7ef0233d7 Bug 1623715 - [4.1] Fix LinkedList::length() for a const context. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D84543
2020-08-17 20:37:37 +00:00
Simon Giesecke fa7f470279 Bug 1658528 - Add MOZ_TO_RESULT_INVOKE macro. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D75754
2020-08-17 06:34:39 +00:00
Simon Giesecke 531508b985 Bug 1658524 - Make ToResultInvoke also accept RefPtr<T>/nsCOMPtr<T>. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D86692
2020-08-12 18:33:14 +00:00
Tom Ritter 73764ca6a5 Bug 1656896 - Improve the Tainting macros and add unit tests r=froydnj
The patch:
 - Changes from an explicit capture in MOZ_VALIDATE_AND_GET_HELPER3/MOZ_IS_VALID
   to a default capture, to support referencing local variables in conditions.
 - Moves things around in Tainting.h and adds comments
 - Adds unit tests for the macros

Differential Revision: https://phabricator.services.mozilla.com/D85889
2020-08-07 19:14:22 +00:00
Simon Giesecke 1a9da56b94 Bug 1653335 - Get rid of MakeSpan functions. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83818
2020-08-07 07:50:04 +00:00
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