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

1578 Коммитов

Автор SHA1 Сообщение Дата
Lee Salzman 3ffe69dad3 Bug 1404742 - add ThreadSafeWeakPointer to MFBT. r=nfroyd 2017-10-18 14:21:23 -04:00
Sylvestre Ledru f4fab71f73 Bug 1409382 - EnumSet.h - Initialize mVersion to silence a warning with gcc 8 r=froydnj
MozReview-Commit-ID: CfTs6IAP1z5

--HG--
extra : rebase_source : 80051fe498d20e08060afca577a6abc4ee3c35cd
2017-10-17 15:19:16 +02:00
Mike Hommey 9f2dd4775e Bug 1407468 - Replace multiple !JS_STANDALONE with MOZ_WIDGET_TOOLKIT. r=mshal
--HG--
extra : rebase_source : 4f9f9f583c3422ed0f8d1d65ea8e7575bd9baf2c
2017-10-05 14:50:01 +09:00
Jeff Walden a3d9df23d5 Bug 1407137 - Implement Swap(Atomic<T, Order>&, Atomic<T, Order>&) = delete; to remove an actually-non-atomic footgun. r=froydnj
--HG--
extra : rebase_source : 6afed8e85fcf8801144a1a34ea07f590baa0f5e0
2017-10-10 10:19:31 -07:00
Jeff Walden be56429c85 Bug 1402344 - Update mfbt-double-conversion to the latest upstream rev. r=froydnj
--HG--
rename : mfbt/double-conversion/source/LICENSE => mfbt/double-conversion/double-conversion/LICENSE
rename : mfbt/double-conversion/source/README.md => mfbt/double-conversion/double-conversion/README.md
rename : mfbt/double-conversion/source/bignum-dtoa.cc => mfbt/double-conversion/double-conversion/bignum-dtoa.cc
rename : mfbt/double-conversion/source/bignum-dtoa.h => mfbt/double-conversion/double-conversion/bignum-dtoa.h
rename : mfbt/double-conversion/source/bignum.cc => mfbt/double-conversion/double-conversion/bignum.cc
rename : mfbt/double-conversion/source/bignum.h => mfbt/double-conversion/double-conversion/bignum.h
rename : mfbt/double-conversion/source/cached-powers.cc => mfbt/double-conversion/double-conversion/cached-powers.cc
rename : mfbt/double-conversion/source/cached-powers.h => mfbt/double-conversion/double-conversion/cached-powers.h
rename : mfbt/double-conversion/source/diy-fp.cc => mfbt/double-conversion/double-conversion/diy-fp.cc
rename : mfbt/double-conversion/source/diy-fp.h => mfbt/double-conversion/double-conversion/diy-fp.h
rename : mfbt/double-conversion/source/double-conversion.cc => mfbt/double-conversion/double-conversion/double-conversion.cc
rename : mfbt/double-conversion/source/double-conversion.h => mfbt/double-conversion/double-conversion/double-conversion.h
rename : mfbt/double-conversion/source/fast-dtoa.cc => mfbt/double-conversion/double-conversion/fast-dtoa.cc
rename : mfbt/double-conversion/source/fast-dtoa.h => mfbt/double-conversion/double-conversion/fast-dtoa.h
rename : mfbt/double-conversion/source/fixed-dtoa.cc => mfbt/double-conversion/double-conversion/fixed-dtoa.cc
rename : mfbt/double-conversion/source/fixed-dtoa.h => mfbt/double-conversion/double-conversion/fixed-dtoa.h
rename : mfbt/double-conversion/source/ieee.h => mfbt/double-conversion/double-conversion/ieee.h
rename : mfbt/double-conversion/source/strtod.cc => mfbt/double-conversion/double-conversion/strtod.cc
rename : mfbt/double-conversion/source/strtod.h => mfbt/double-conversion/double-conversion/strtod.h
rename : mfbt/double-conversion/source/utils.h => mfbt/double-conversion/double-conversion/utils.h
extra : rebase_source : 2d03850dcd1db749f0debecffec2e870acd1b958
2017-10-09 22:15:37 -07:00
Jean-Yves Avenard a81f8e9be1 Bug 1406793 - Make IsWindows* methods thread-safe. r=froydnj
MozReview-Commit-ID: 9AmhHv2g983

--HG--
extra : rebase_source : c814d15bdbfacdbe48fe7705e41a8c8878339a9a
2017-10-09 10:36:23 +02:00
Nicholas Nethercote d225f7151b Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro.
(Path is actually r=froydnj.)

Bug 1400459 devirtualized nsIAtom so that it is no longer a subclass of
nsISupports. This means that nsAtom is now a better name for it than nsIAtom.

MozReview-Commit-ID: 91U22X2NydP

--HG--
rename : xpcom/ds/nsIAtom.h => xpcom/ds/nsAtom.h
extra : rebase_source : ac3e904a21b8b48e74534fff964f1623ee937c67
2017-10-03 09:05:19 +11:00
Chris Peterson 7bbe4a40e6 Bug 1405582 - Span: avoid repeated calls to size(). r=hsivonen
MozReview-Commit-ID: BKFrbvEt57l

--HG--
extra : rebase_source : 9aeb6fd018da5b8623f14ab927bd786c29ae56ae
extra : source : c5bedfde8b9dc2929fc14cfc2dc816e5f08b4ad8
2017-09-19 13:18:38 -07:00
Chris Peterson a48326552c Bug 1405582 - Span: delete implicit constructors for char* and char16_t*. r=froydnj,hsivonen
Delete Span's implicit constructors for char* and char16_t* pointers to avoid accidental construction in cases where a pointer does not point to a zero-terminated string. Use the MakeStringSpan() function instead.

I deleted both the const and non-const char* and char16_t* constructors, in the name of cross-compiler consistency. If we only delete the const char* and char16_t* constructors, for some reason, MSVC complains that `Span<char> s(charArray)` uses a deleted constructor while clang nor gcc permit it. I don't know if this is a compiler bug in MSVC or clang and gcc.

Also, do not permit MakeSpan() for string literals (const char and char16_t arrays) because the Span length would include the zero terminator, which may surprise callers. Use MakeStringSpan() to create a Span whose length that excludes the string literal's zero terminator or use the MakeSpan() overload that accepts a pointer and length and specify the string literal's full length.

The following Span usages are prevented:

  Span<const char> span("literal"); // error
  Span<char> span(charArray); // error

  Span<const char> span;
  span = "literal"; // error
  span = charArray; // error

  MakeSpan("literal"); // error

The following Span usages are still permitted:

  assert(MakeStringSpan("literal") == 8); // OK: span length is calculated with strlen() and excludes the zero terminator
  MakeStringSpan(charArray); // OK: span length is calculated with strlen() and excludes the zero terminator
  MakeSpan(charArray); // OK: span length is the char array size including any zero terminator

MozReview-Commit-ID: Et71CpjsiyI

--HG--
extra : rebase_source : f6f8bdb28726f0f2368fdfdd039fb1d7dcf2914e
extra : source : 0547d8924ffc7713d6cf32cc06eeeaf00e0d69a3
2017-09-20 00:38:07 -07:00
Jim Blandy d68a13309e No bug: RollingMean.h doc fix. DONTBUILD r=kentuckyfriedtakahe
--HG--
extra : rebase_source : ea6ed30a67a1b0d3d19048b3c2b61857514371da
extra : amend_source : 3dc9b5c144c565ca9b90914de626c15e610aa372
2016-12-20 23:11:30 -08:00
Sebastian Hengst 9187795579 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 74cERYrHFIG
2017-09-28 11:44:21 +02:00
Tom Ritter 86d478e605 Bug 1402355 Require TLS_OUT_OF_INDEXES to be defined before ThreadLocalKeyStoragewill be defined on Windows r=glandium
ThreadLocalKeyStorage uses Thread Local APIs that are declared in
processthreadsapi.h (although it's more common to just include
windows.h). If a caller wants to use this class, it is their
responsibility to include an appropriate header before including
ThreadLocal.h


MozReview-Commit-ID: GO5dHKVWpZO

--HG--
extra : rebase_source : ff8d6cda1eed7bd9d54745c869b4e47a895b605a
2017-09-27 15:09:23 -05:00
Luke Wagner bb375a16d4 Bug 1329019 - Allow specifying capacity to Vector::replaceRawBuffer (r=froydnj)
MozReview-Commit-ID: 9Eq6PR53n4i
2017-09-22 10:34:24 -05:00
Luke Wagner 231c33a9fe Bug 1329019 - Vector::podResizeToFit should update reserved (r=froydnj)
MozReview-Commit-ID: CkoNRjxmjom
2017-09-22 10:33:36 -05:00
Mats Palmgren b00f969bb5 Bug 1356936 - Use __builtin_add/sub/mul_overflow() where available to optimize CheckedInt. r=waldo,ehsan
MozReview-Commit-ID: ARw6zNelpSk
2017-09-21 18:24:10 +02:00
Dimitry Andric f2d86a8b30 Bug 1399412 - Work around clang assertion by wrapping lz4.c in an extern C block. r=froydnj
MozReview-Commit-ID: LLgSbJadbyJ

--HG--
extra : amend_source : 08d7908fe6807db654411fc291bccc98496d4275
2017-09-13 09:43:00 -04:00
Wes Kocher ff68b95b87 Merge inbound to central, a=merge
MozReview-Commit-ID: ClVRh99eIUo
2017-09-14 00:03:28 -07:00
Sebastian Hengst 123fb86836 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-09-14 00:15:34 +02:00
Matt Woodrow a56e3551a2 Bug 1397056 - Add Contains and a return parameter to Remove for SmallPointerArray. r=froydnj
* * *
[mq]: fix

MozReview-Commit-ID: 5laM7PQLP7X
2017-09-12 14:11:47 -04:00
Mike Hommey 087c1cda52 Bug 1399031 - Add a Tls{Get,Set}Value-based ThreadLocal implementation for Windows. r=froydnj
--HG--
extra : rebase_source : 13a407d35973ba2ed6da29195f5ce8a2c0f7cff4
2017-09-12 16:04:17 +09:00
Mike Hommey 97e87fc179 Bug 1399031 - Expose pthread_{get,set}specific-based TLS whether "native" TLS is supported or not. r=froydnj
There are use cases for wanting a specific TLS implementation
independently of whether __thread or thread_local are supported.
This is one step in that direction, making the
pthread_{get,set}specific-based implementation available independently.

We still keep everything under the mozilla::detail namespace because
it's still better if people don't try to use mozilla::ThreadLocal
directly.

--HG--
extra : rebase_source : 095b95a577b85efaaf2f3c0b7c3ac968ff711738
2017-09-12 15:37:31 +09:00
Kevin Hsieh a0a376f2f1 Bug 1396026 - Update OTS to accept Awami Nastaliq. r=froydnj,jfkthame
MozReview-Commit-ID: EvF3YDhuwNn

--HG--
extra : rebase_source : 20046aa4f2695f923574bf00207f06a113d1f246
2017-09-07 10:40:59 -07:00
Wes Kocher b1233c7d04 Backed out changeset 371a03aa9b24 (bug 1397056) for build errors in SmallPointerArray.h a=backout CLOSED TREE
MozReview-Commit-ID: FNVPjKmVCWB

--HG--
extra : rebase_source : 41e380e59d9eead945ba515d85c1b9195329bc74
2017-09-12 12:39:09 -07:00
Matt Woodrow 5675f29866 Bug 1397056 - Add Contains and a return parameter to Remove for SmallPointerArray. r=froydnj
* * *
[mq]: fix

MozReview-Commit-ID: 5laM7PQLP7X

--HG--
extra : rebase_source : f1baa7c1581fcc864d2b548989e967f57e24b921
2017-09-12 14:11:47 -04:00
Ryan VanderMeulen 909ebdebd8 Bug 1398021 - Update lz4 to version 1.8.0. r=froydnj 2017-09-12 09:00:37 -04:00
Mike Hommey be1493b6fc Bug 1396723 - Use DoublyLinkedList in mozjemalloc. r=froydnj
Mozjemalloc uses its own doubly linked list, which, being inherited from
C code, doesn't do much type checking, and, in practice, is rather
similar to DoublyLinkedList, so use the latter instead.

--HG--
extra : rebase_source : 9eb7334b6dde05f9af0eaea4184e532c69d0264e
2017-09-02 08:55:42 +09:00
Mike Hommey 0d8ed2b1a5 Bug 1396723 - Simplify the trait users of DoublyLinkedList need to define. r=froydnj
While the flexibility of the current trait is nice, it's actually not
used to its fullest anywhere, and is boilerplate-y. While it is useful
to be able to put the links anywhere, there's not much usefulness from
being able to split mNext and mPrev.

So instead of a trait that allows to get/set mNext and mPrev
independently, we just use a trait that tells how to get a reference to
a DoublyLinkedListElement from a list element itself.

--HG--
extra : rebase_source : 674277bac4fc979f2e483a77b5ef1495baccc7fe
2017-09-02 08:09:58 +09:00
Mike Hommey 18212266ea Bug 1398543 - Add missing condition in DoublyLinkedList::ElementNotInList. r=froydnj
--HG--
extra : rebase_source : fa07b148bd0d7e7428e70fb8a05edb5792836135
2017-09-10 08:49:56 +09:00
Chris Manchester c0a229d4c3 Bug 1386876 - Replace all uses of DISABLE_STL_WRAPPING with a template, remove DISABLE_STL_WRAPPING. r=glandium
MozReview-Commit-ID: FMEtb5PY7iP

--HG--
extra : rebase_source : 3cdee7528846462c758e623d6bcd2e6e17dbabff
2017-09-11 11:33:26 -07:00
Phil Ringnalda bc78097d88 Backed out 2 changesets (bug 1396723) for !ElementAccess::Get(mHead).mPrev assertion failures
Backed out changeset 4f17343164b6 (bug 1396723)
Backed out changeset b744eba9ca78 (bug 1396723)

MozReview-Commit-ID: JbvM6oMxEFl
2017-09-06 21:39:20 -07:00
Mike Hommey 6b7116c52d Bug 1396723 - Use DoublyLinkedList in mozjemalloc. r=froydnj
Mozjemalloc uses its own doubly linked list, which, being inherited from
C code, doesn't do much type checking, and, in practice, is rather
similar to DoublyLinkedList, so use the latter instead.

--HG--
extra : rebase_source : 1d40653b8117e28d8633134f379540c3c517a306
2017-09-02 08:55:42 +09:00
Mike Hommey b16f4035ba Bug 1396723 - Simplify the trait users of DoublyLinkedList need to define. r=froydnj
While the flexibility of the current trait is nice, it's actually not
used to its fullest anywhere, and is boilerplate-y. While it is useful
to be able to put the links anywhere, there's not much usefulness from
being able to split mNext and mPrev.

So instead of a trait that allows to get/set mNext and mPrev
independently, we just use a trait that tells how to get a reference to
a DoublyLinkedListElement from a list element itself.

--HG--
extra : rebase_source : f84c5799c305a4a3b7dc5deb727a05d4d537bb15
2017-09-02 08:09:58 +09:00
Wes Kocher f66c96f2c8 Backed out 2 changesets (bug 1396723) for build failures in TestDoublyLinkedList.cpp a=backout
Backed out changeset 1c0f9d069ade (bug 1396723)
Backed out changeset 6ca94a450b81 (bug 1396723)

MozReview-Commit-ID: 2w3WTvhpg6J
2017-09-06 14:30:41 -07:00
Mike Hommey d946f42f29 Bug 1396723 - Use DoublyLinkedList in mozjemalloc. r=froydnj
Mozjemalloc uses its own doubly linked list, which, being inherited from
C code, doesn't do much type checking, and, in practice, is rather
similar to DoublyLinkedList, so use the latter instead.

--HG--
extra : rebase_source : 7f2c03d6ba5c1da5d8badb0de710b7900e9d00c1
2017-09-02 08:55:42 +09:00
Mike Hommey 9a3dd41f50 Bug 1396723 - Simplify the trait users of DoublyLinkedList need to define. r=froydnj
While the flexibility of the current trait is nice, it's actually not
used to its fullest anywhere, and is boilerplate-y. While it is useful
to be able to put the links anywhere, there's not much usefulness from
being able to split mNext and mPrev.

So instead of a trait that allows to get/set mNext and mPrev
independently, we just use a trait that tells how to get a reference to
a DoublyLinkedListElement from a list element itself.

--HG--
extra : rebase_source : b7d502754a764670e291acdd56726948db935497
2017-09-02 08:09:58 +09:00
Kilik Kuo 3d9fbae6bd Bug 1279171 - Do not use WMF when application is in Windows pre-2000 compatibility mode. r=froydnj
MozReview-Commit-ID: BPiz2WWrshF

--HG--
extra : rebase_source : c5e78e94c542a5b00b06e177aa088ad3bb56da57
2017-08-24 11:46:56 +08:00
Kris Maglione 6bad4f8ef7 Bug 1366511: Part 3 - Add mozilla::ToResult() to convert other result types to equivalent Result. r=nbp,ehsan
Also adds a mozilla/ResultExtensions.h header to define the appropriate
conversion functions for nsresult and PRResult. This is in a separate header
since those types are not available in Spidermonkey, and this is the pattern
other *Extensions.h headers follow.

Also removes equivalent NS_TRY macros and WrapNSResult inlines that served the
same purpose in existing code, and are no longer necessary.

MozReview-Commit-ID: A85PCAeyWhx

--HG--
extra : rebase_source : a5988ff770888f901dd0798e7717bcf6254460cd
2017-08-29 21:28:31 -07:00
Kris Maglione c9899cb3fa Bug 1366511: Part 2 - Allow autoconverting Err(nsresult) to nsresult. r=ehsan,nbp
This allows MOZ_TRY and MOZ_TRY_VAR to be transparently used in XPCOM methods
when compatible Result types are used.

Also removes a compatibility macro in SimpleChannel.cpp, and an identical
specialization in AddonManagerStartup, which are no longer necessary after
this change.

MozReview-Commit-ID: 94iNrPDJEnN

--HG--
extra : rebase_source : 24ad4a54cbd170eb04ded21794530e56b1dfbd82
2017-08-29 21:28:22 -07:00
Kris Maglione 92dcd409a3 Bug 1366511: Part 1 - Allow packing Result<T, nsresult> values into a single word. r=ehsan,nbp
When used as an error value, nsresult should never be NS_OK, which means that
we should be able to safely pack simple nsresult Result values into a single
word.

MozReview-Commit-ID: GJvnyTPjynk

--HG--
extra : rebase_source : ab5a64b545dfbfe9bbef167f8b63ecbf00b16e07
2017-08-31 16:01:43 -07:00
Nick Fitzgerald 9da40f6365 Bug 1277338 - Part 7: Export mozglue when JS_STANDALONE && !jemalloc; r=glandium,sfink
This makes sure that:

* We don't define `MOZ_GLUE_IN_PROGRAM` so that everything in mozglue gets
  defined.

* `MFBT_API`'s symbol export rules match `JS_PUBLIC_API` and `EXPORT_JS_API`.

* We add mozglue to SpiderMonkey's `USE_LIBS` when jemalloc is disabled.
2017-08-31 15:59:13 -07:00
Tom Ritter 92ff663a31 Bug 1393498 Mark the stub_BaseThreadInitThunk as MOZ_NORETURN to silence a warning about a noreturn function not returning r=dmajor,froydnj
/home/worker/workspace/build/src/mozglue/build/WindowsDllBlocklist.cpp:816:1: error: 'noreturn' function does return [-Werror]

MozReview-Commit-ID: SYgPDW0sMV

--HG--
extra : rebase_source : 27b1dda404b3fc5fab95dd524677387bad921751
2017-08-24 22:49:09 -05:00
Tom Ritter 8dbe002119 Bug 1393538 Clean up unused variables in toolkit/ r=smaug
MozReview-Commit-ID: I6r50dqJJHJ

--HG--
extra : rebase_source : f1f773db8f0ec44c1cf6f194973f870b08f6138b
2017-08-24 15:07:59 -05:00
Bill McCloskey f90a87caa9 Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj)
MozReview-Commit-ID: JWBxz3bwgwD
2017-08-25 10:28:23 -07:00
Bill McCloskey 06a265a5bd Bug 1350432 - Add TLS infallible init (r=froydnj)
MozReview-Commit-ID: 9Fgltrw4p8
2017-08-25 10:28:23 -07:00
Nathan Froyd c5fa35746e Bug 1390568 - manually de-virtualize do_QueryReferent; r=ehsan
nsQueryReferent is defined as an nsCOMPtr_helper, which implies that
calling its operator() method requires a virtual call.  While
nsQueryReferent is marked `final`, compiler inlining decisions make it
impossible to de-virtualize the call to operator().  However, we have
many other classes returned by do_* functions that nsCOMPtr handles
directly, requiring no extra virtual calls, and we can give
nsQueryReferent the same treatment.
2017-08-24 20:04:31 -04:00
Tristan Bourvon ba0998ae31 Bug 1380423 - Add static-analysis to enforce strict rules on functions which can run scripts. r=mystor
MozReview-Commit-ID: GGSyq0z5msB
2017-08-08 19:48:53 +03:00
Wes Kocher fb8abb94c7 Merge inbound to central, a=merge
MozReview-Commit-ID: 1mWKzfX4kl
2017-08-23 18:07:24 -07:00
Luke Wagner e59ff0294c Bug 1351488 - Add MOZ_XPCOM_ABI to mfbt (r=froydnj)
MozReview-Commit-ID: Hw3zDX3TOhs

--HG--
extra : rebase_source : 96d93215f9d79e376df25108d0f4d82a178bda28
2017-08-23 10:16:56 -05:00
James Cheng 5a887baca6 Bug 1392885 -Add debug message when misusing the guard object. r=froydnj
MozReview-Commit-ID: 78iFX5qUcTC

--HG--
extra : rebase_source : 320b23d8d6a1fcff7fe6573243f10393f1bf56cf
2017-08-23 11:59:21 +08:00
Xidorn Quan 667a3cb5a4 Bug 1391103 - Align Maybe::mStorage like when the type is in a struct. r=froydnj
MozReview-Commit-ID: 6ArNhZA4Wdf

--HG--
extra : rebase_source : f69ae80c146f2acb308a6c9707aac7ee22f5d992
2017-08-17 09:49:19 +10:00
Sylvestre Ledru 22a57591b0 Bug 1387002 - Replace .size() by .empty() when applicable in mfbt r=froydnj
MozReview-Commit-ID: 9S5oZQkykKv

--HG--
extra : rebase_source : dfc6b9bccb3a388486efb7179a5864b19e0952ec
2017-08-03 12:07:07 +02:00
Tristan Bourvon 2e77c99160 Bug 1374024 - add checker to prevent dangling pointers returned by method calls on temporaries. r=mystor
MozReview-Commit-ID: 9khNt59ONF
2017-07-05 16:14:21 +02:00
Cykesiopka ec8581113b Bug 1355692 - Add MOZ_FALLTHROUGH macro definition for gcc 7 to suppress -Wimplicit-fallthrough warnings. r=glandium
The generic fallback MOZ_FALLTHROUGH definition is insufficient for GCC 7 and
above, resulting in --enable-warnings-as-errors builds failing.

The check for clang support is changed to use the __has_cpp_attribute macro,
which is more robust than checking the __cplusplus version.

Also, MOZ_FALLTHROUGH is now only defined in C++ code, since GCC errors out if
it encounters a scoped attribute being used with __has_cpp_attribute in C code.
No C code uses MOZ_FALLTHROUGH or derivatives at the moment.

MozReview-Commit-ID: 4nKFBRD5jSF

--HG--
extra : rebase_source : 0c37ae39c806ca24a3271d3ec19531dd16e05daf
2017-07-28 00:11:28 +08:00
Bill McCloskey 7e43e5439d Bug 1384395 - Use nsAutoOwningThread for mfbt/WeakPtr.h thread assertions (r=froydnj)
MozReview-Commit-ID: DF4DiffL4Qq
2017-07-28 13:11:44 -07:00
Carsten "Tomcat" Book d360d49d2a merge mozilla-inbound to mozilla-central a=merge 2017-07-27 10:57:25 +02:00
Kartikaya Gupta ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
Kris Maglione 8683b183cd Bug 1382645: Part 1 - Add memory reporter for StructuredCloneHolder binding implementation. r=billm
MozReview-Commit-ID: aK3ljfCJVi

--HG--
extra : rebase_source : d788c6c686cc72b423ca100795a379d343c398db
2017-07-25 14:53:41 -07:00
Michael Layzell 0969ebe118 Bug 1380410 - Add NeverAllocPolicy, r=erahm
MozReview-Commit-ID: 8U38Oj3vyaF
2017-07-25 11:26:21 -04:00
Jeff Hajewski 447dee122f Add IPC support for mozilla::Variant (bug 1371846); r=botond
Changes made:
* Add IPC::ParamTraits as a friend to mozilla::Variant in Variant.h.
  This is required so that `tag` can be accessed in the
  IPC::ParamTraits specialization.

* Add a IPC::ParamTraits specialization to IPCMessageUtils.h.

MozReview-Commit-ID: B3pGrZE1z0O

--HG--
extra : rebase_source : cb73873b87401846f79e124249c7ce00dff2de77
2017-07-21 07:18:02 -05:00
Nathan Froyd fd24d774c3 Bug 1347963 - part 0 - use global qualification for GuardObjects.h macros; r=erahm
These macros can be used in cases where the `mozilla` namespace might
not refer to the toplevel `mozilla` namespace that was intended.  To
ensure that the macros always refer to the `mozilla` namespace in the
global namespace, use the appropriate qualification.
2017-07-24 17:05:01 -04:00
Jon Coppeard 3c71e685eb Bug 1382275 - Refactor incremental sweeping to more clearly express the control flow r=sfink 2017-07-26 14:19:11 +01:00
Sylvestre Ledru 7c0ae251cd Bug 1381253 - Remove redundant control flow declarations rs=ehsan
MozReview-Commit-ID: FFxP4aMCbOL

--HG--
extra : amend_source : 3aec108430b11048f47ffe19d5da7ac5034770a9
2017-07-15 19:03:04 +02:00
Ehsan Akhgari 2409266542 Bug 1379290 follow-up: Fix typo, DONTBUILD 2017-07-19 00:26:10 -04:00
Ehsan Akhgari 9ab7e769c8 Bug 1379290 - Improve the hashing of signed 64-bit integers by piggy-backing on the same mechanism as the one we use for hashing pointers; r=glandium 2017-07-19 00:00:19 -04:00
Benjamin Smedberg c2b9935278 Bug 1379254 - Add a @note to the documentation of MOZ_CRASH_UNSAFE_* to make clear data collection risk and requirements, r=erahm
MozReview-Commit-ID: KssgssWHTUX

--HG--
extra : rebase_source : 1daa52ebe00e594534f06463e45f98e50ab8a49a
2017-07-07 14:44:26 -04:00
Carsten "Tomcat" Book 6f930b42b1 Backed out changeset 1a0693cc418b (bug 1374024) for bustage 2017-07-13 15:14:51 +02:00
Tristan Bourvon 473b245885 Bug 1374024 - add checker to prevent dangling pointers returned by method calls on temporaries. r=mystor
MozReview-Commit-ID: 9khNt59ONFE
2017-07-05 16:14:21 +02:00
Carsten "Tomcat" Book 2332473008 Backed out changeset 1a49d403a9a4 (bug 1374024) for bustage 2017-07-13 11:10:31 +02:00
Tristan Bourvon 20068f7ba3 Bug 1374024 - add checker to prevent dangling pointers returned by method calls
on temporaries. r=mystor

MozReview-Commit-ID: 9khNt59ONFE
2017-07-05 16:14:21 +02:00
Jim Blandy 70ad42d64f NO BUG: Fix misspelled name in comments. DONTBUILD r=jorendorff
--HG--
extra : rebase_source : db21b85604b4e486d54fa45c993a32a64d76778c
2016-03-23 10:29:45 -07:00
Botond Ballo 2c2d3ded79 Bug 1371771 - Add a MOZ_DEFINE_ENUM macro and variants to MFBT. r=froydnj
The macro simultaneously declares an enumeration and a count of its
enumerators.

A few variants of the macro are also provided to handle things like
enum classes, underlying types, and enumerations declared at class
scope.

MozReview-Commit-ID: 3z6yHnfXbLj

--HG--
extra : rebase_source : 92c333693e4bbf85b89cd3d7ac5b31f4b5434367
2017-06-30 19:58:11 -04:00
Christian Holler b8ee76ebd8 Bug 1373256 - Changes to support -fsanitize=integer in the codebase. r=froydnj
The -fsanitize=integer analysis from UBSan can be helpful to detect signed and unsigned integer overflows in the codebase. Unfortunately, those occur very frequently, making it impossible to test anything with it without the use of a huge blacklist. This patch includes a blacklist that is broad enough to silence everything that would drain performance too much. But even with this blacklist, neither tests nor fuzzing is "clean". We can however in the future combine this with static analysis to limit ourselves to interesting places to look at, or improve the dynamic analysis to omit typical benign overflows.

It also adds another attribute that can be used on functions. It is not used right now because it was initially easier to add things to the compile-time blacklist to get started.

Finally, it includes a runtime suppression list and patches various parts in the test harnesses to support that. It is currently empty and it should not be used on frequent overflows because it is expensive. However, it has the advantage that it can be used to differentiate between signed and unsigned overflows while the compile-time blacklist cannot do that. So it can be used to e.g. silence unsigned integer overflows on a file or function while still reporting signed issues. We can also use this suppression list for any other UBSan related suppressions, should we ever want to use other features from that sanitizer.

MozReview-Commit-ID: C5ofhfJdpCS

--HG--
extra : rebase_source : 952043a441b41b2f58ec4abc51ac15fa71fc142f
2017-04-09 12:59:26 +02:00
Carsten "Tomcat" Book d8e080c10c Backed out changeset 07e0c4e4ae85 (bug 1373256) for breaking android tests 2017-06-28 14:47:55 +02:00
Christian Holler 9924ab3046 Bug 1373256 - Changes to support -fsanitize=integer in the codebase. r=froydnj
The -fsanitize=integer analysis from UBSan can be helpful to detect signed and unsigned integer overflows in the codebase. Unfortunately, those occur very frequently, making it impossible to test anything with it without the use of a huge blacklist. This patch includes a blacklist that is broad enough to silence everything that would drain performance too much. But even with this blacklist, neither tests nor fuzzing is "clean". We can however in the future combine this with static analysis to limit ourselves to interesting places to look at, or improve the dynamic analysis to omit typical benign overflows.

It also adds another attribute that can be used on functions. It is not used right now because it was initially easier to add things to the compile-time blacklist to get started.

Finally, it includes a runtime suppression list and patches various parts in the test harnesses to support that. It is currently empty and it should not be used on frequent overflows because it is expensive. However, it has the advantage that it can be used to differentiate between signed and unsigned overflows while the compile-time blacklist cannot do that. So it can be used to e.g. silence unsigned integer overflows on a file or function while still reporting signed issues. We can also use this suppression list for any other UBSan related suppressions, should we ever want to use other features from that sanitizer.

MozReview-Commit-ID: C5ofhfJdpCS

--HG--
extra : rebase_source : 64aa804965d24bb90b103c00c692a2ac6859e408
2017-04-09 12:59:26 +02:00
David Anderson 6376e2c6bb Initial import of Advanced Layers. (bug 1365879 part 20, r=bas) 2017-06-23 14:23:12 -07:00
Carsten "Tomcat" Book 4119f2f8fb Backed out changeset 8069471cda21 (bug 1365879) 2017-06-23 12:15:35 +02:00
Carsten "Tomcat" Book 5f51e5596e merge mozilla-inbound to mozilla-central a=merge 2017-06-23 11:28:19 +02:00
David Anderson 8eb9963527 Initial import of Advanced Layers. (bug 1365879 part 20, r=bas)
--HG--
extra : rebase_source : 57032a3e3d383c27cfdc2f26841d387ca57d0011
2017-06-22 21:12:19 -07:00
Masatoshi Kimura 5480e54c73 Bug 1374629 - Ensure that mozilla::NotNull has zero space overhead. r=njn
MozReview-Commit-ID: 9Bo2qxd3HRv

--HG--
extra : rebase_source : e35aec9978f13092d91141955effb0942e84e70c
2017-06-22 00:52:28 +09:00
Chris Peterson 0a377e9314 Bug 1373525 - mfbt: Use unused GetPrev() member function in DoublyLinkedList test. r=froydnj
mfbt/tests/TestDoublyLinkedList.cpp:138:24 [-Wunused-member-function] unused member function 'GetPrev'

MozReview-Commit-ID: HQuTw0vXRKV

--HG--
extra : source : 0db3bd8a40d67a81b2f224dc9e63012cb832d0b9
extra : intermediate-source : 948c43ff15b4ca1a3db335544494562ec28e67cc
2017-06-11 14:39:42 -07:00
Jacek Caban 09b68c9d97 Bug 1368616 - Error compiling TestBlockingProcess.exe with MinGW: undefined reference to _imp___ZN7mozilla6UnusedE r=froydnj 2017-06-21 11:47:11 +02:00
Kris Maglione fc7a069802 Bug 1373579: Part 3 - Require fallible Init method rather than infallible constructor when using fallible allocator. r=billm
MozReview-Commit-ID: 7ymS0e39mrJ

--HG--
extra : rebase_source : 1f191e5107431575d96d3dd66e5e4fda960917bd
2017-06-20 12:06:13 -07:00
Kris Maglione 33c22b03e7 Bug 1373579: Part 2 - Deserialize StructuredCloneBlob in segments rather than a single large allocation. r=billm
MozReview-Commit-ID: QZqPKSTheG

--HG--
extra : rebase_source : 6f1618a4542e34db92bafde3b4577197672eaf3f
2017-06-19 16:51:34 -07:00
Petr Sumbera 80944c40d8 Bug 1158445 - posix_madvise() should be used instead of madvise on Solaris. r=froydnj, r=jandem 2017-06-09 00:59:32 -07:00
Eric Rahm e08fbaaad6 Bug 1353593 - Part 1: Allow implicit conversion of non-const char16ptr_t to wchar*. r=froydnj 2017-06-12 16:20:47 -07:00
Henri Sivonen 854d241f4f Bug 1359874 - Make Span::Elements() always return a non-null pointer. r=froydnj.
MozReview-Commit-ID: AGvNlHmonpi
2017-06-13 13:22:34 +03:00
Carsten "Tomcat" Book 87a9dfd869 Merge mozilla-central to autoland 2017-06-07 13:49:00 +02:00
Aaron Klotz 2bf8b9acc9 Bug 1368150: Add IsWindows10BuildOrNewer to MFBT; r=froydnj
MozReview-Commit-ID: 6lxZWDPc6ZQ

I need to be able to distinguish between builds of Windows 10. Unfortunately the
stuff that I am working with cannot be sorted out via feature detection.

--HG--
extra : rebase_source : 6da46f31815b2938d9a7a984473ed01c35b8a59d
2017-06-06 11:14:58 -06:00
Mike Hommey 05a36a133a Bug 1369622 - Add a static_assert when no variadic argument is given to MOZ_CRASH_UNSAFE_PRINTF. r=froydnj
If MOZ_CRASH_UNSAFE_PRINTF is only given a format string, it means
either arguments are missing, or MOZ_CRASH should be used instead.
Hint at that with a static_assert.

--HG--
extra : rebase_source : 355c37deb8b007e61939a4c657e411d110e7bbe7
2017-06-02 15:11:47 +09:00
Mike Hommey 8914ace4ce Bug 1369622 - Use MOZ_ARG_COUNT instead of MOZ_PASTE_PREFIX_AND_ARG_COUNT. r=froydnj
In a couple places, MOZ_PASTE_PREFIX_AND_ARG_COUNT is used to only count
the number of arguments, we can now use MOZ_ARG_COUNT directly for that.

--HG--
extra : rebase_source : 1064e4cc231863dc4aff83ee6bc90d318b4be418
2017-06-02 15:06:34 +09:00
Mike Hommey 38a6de0fe3 Bug 1369622 - Fix MOZ_FOR_EACH with an empty list. r=froydnj
I'm not sure how I tested MOZ_FOR_EACH in bug 1368932, but it turns out
it doesn't work with an empty list, despite
MOZ_PASTE_PREFIX_AND_ARG_COUNT now supporting 0 arguments.

Macros can be tricky, and it ends up being easier to make things work
cross-compiler with a separate macro that does the counting, and
(re)building MOZ_PASTE_PREFIX_AND_ARG_COUNT on top of that. Then
MOZ_FOR_EACH ends up working as expected with an empty list.

So this adds a MOZ_ARG_COUNT macro that counts the number of variadic
arguments it's given, and derives MOZ_PASTE_PREFIX_AND_ARG_COUNT from
it.

And this adds a testcase validating that MOZ_FOR_EACH works properly
with an empty list as a result.

--HG--
extra : rebase_source : 309371d87bd1561fbd2153f44fc1256185045d23
2017-06-02 14:53:54 +09:00
Sylvestre Ledru e3c965eb6f Bug 1368079 - Enable the diagnostic assert when MOZ_DEV_EDITION is set r=froydnj,glandium
MozReview-Commit-ID: Dxi5jTGcrow

--HG--
extra : rebase_source : 959956094e6e64a50e307e48b11bb8791940d297
2017-06-05 23:47:02 +02:00
Gerald Squelart f5f8abf86a Bug 1338389 - Tests for Variant's detail::Nth and detail::SelectVariantType - r=froydnj
MozReview-Commit-ID: 4QXdctmhNze

--HG--
extra : rebase_source : ddbdf8c79f49ebb02c9e68dca0be4a6ee9ad11f4
2017-06-06 16:59:00 +12:00
Gerald Squelart a7c6eed190 Bug 1338389 - VariantType<T> and VariantIndex<N> permit unambiguous and variadic Variant construction - r=froydnj
MozReview-Commit-ID: 3rDya9ZBG6Y

--HG--
extra : rebase_source : d59375a7c805d6d470f5074669f3db5a609eb518
2017-05-08 11:26:07 +12:00
Gerald Squelart 78bc93af40 Bug 1338389 - Allow repeated Variant types, but prevent is/as/extract<T> for them - r=froydnj
MozReview-Commit-ID: 1yEUuGsht8k

--HG--
extra : rebase_source : fed56f264821e87cc474e6686e6dc203c147ac9b
2017-05-10 15:49:38 +12:00
Gerald Squelart 6015fbb5ac Bug 1338389 - Index-based Variant::is<N>, as<N>, and extract<N> - r=froydnj
MozReview-Commit-ID: C5iga0Eb1tH

--HG--
extra : rebase_source : d88cf614318cc8544d7ab52315e015a7ca4e5efd
2017-05-08 11:09:21 +12:00
Gerald Squelart 6f9c60dc02 Bug 1365802 - In VariantImplementation::moveConstruct, move the aRhs rvalue to the next moveConstruct - r=froydnj
Without the Move(), a temporary copy is created and passed as rvalue.

MozReview-Commit-ID: B3MXz6yzO39

--HG--
extra : rebase_source : 897493da0dfac983449da3853fe60bd6ac93117b
2017-05-18 15:39:40 +12:00
Xidorn Quan 32d247eb90 Bug 1162335 - Remove already_AddRefed::MatchNullptr. r=froydnj
MozReview-Commit-ID: 1hxUm9xdNhK

--HG--
extra : rebase_source : 73b9c196ca196d8d1226acb86855ad8b0b5dd4a4
2017-06-01 15:01:40 +10:00
Mike Hommey c1becb4a54 Bug 1368932 - Allow MOZ_PASTE_PREFIX_AND_ARG_COUNT to work with 0 arguments. r=froydnj
At the same time, remove the MOZ_STATIC_ASSERT_VALID_ARG_COUNT, which
doesn't actually work for more than 50 arguments(*), and which is now not
useful to detect 0 arguments.

(*) the build fails, but not directly thanks to the static_assert it
expands to.

--HG--
extra : rebase_source : 8f0fe7b352c89b5a3ec87f42ef5464c370c362ef
2017-05-25 15:47:21 +09:00
Phil Ringnalda 18c2e05936 Backed out changeset df0ddb9c9bef (bug 1368079) for making DevEdition fail to build
MozReview-Commit-ID: BUE6UL0WiDW
2017-05-30 23:10:48 -07:00
Tom Ritter 815d66d2b3 Bug 1368406 Use non-Windows Printf Format Specifiers in MinGW r=froydnj
MinGW applies the gnu_printf format attribute, which expects
non-Windows format specifiers. These macros were not designed
to handle MinGW.

MozReview-Commit-ID: HuJrK43Bg1A

--HG--
extra : rebase_source : 6ccc1b2f4ab0e71584f442e86d94322e2c6382fb
2017-05-29 00:38:57 -05:00
Sylvestre Ledru 6ef28ca31d Bug 1368079 - Enable the diagnostic assert when MOZ_DEV_EDITION is set r=glandium
MozReview-Commit-ID: 1f6Kwne6zYf

--HG--
extra : rebase_source : 14f3697fe4ad7dcd356fdc1424ffc62f4ea9897b
2017-05-30 09:26:02 +02:00
Jonathan Kew 67ca6e1f88 Bug 1365928 - patch 1 - Add a MOZ_NONNULL_RETURN annotation to mfbt/Attributes.h. r=froydnj 2017-05-22 19:00:19 +01:00
Mike Hommey c59dbe56d2 Bug 1365460 - Define MOZ_DIAGNOSTIC_ASSERT_ENABLED when MOZ_DIAGNOSTIC_ASSERT does something. r=froydnj
--HG--
extra : rebase_source : 557203426da1804504588198e0f8bccb3232858e
2017-05-18 11:14:17 +09:00
Bas Schouten 5a025e5c1f Bug 1331718 - Part 2: Add unit tests for SmallPointerArray. r=froydnj
MozReview-Commit-ID: 7xdQfv7Dpph
2017-05-10 05:07:38 +02:00
Bas Schouten cad9560440 Bug 1331718 - Part 1: Add small pointer array. r=froydnj
MozReview-Commit-ID: EapU5nBw1d3
2017-05-10 05:07:37 +02:00
Nathan Froyd e5fbad82a1 Bug 1363426 - part 3 - minor cleanups to Atomics.h; r=erahm
We can move the <atomic> #include to its normal place in the file now,
as well as merging some namespace blocks at the toplevel.
2017-05-10 09:58:28 -04:00
Nathan Froyd c0a40e46f7 Bug 1363426 - part 2 - remove unneeded MOZ_HAVE_CXX1_ATOMICS; r=erahm
Now that we can use <atomic> everywhere, we don't need to test whether
the standard library we're using has <atomic> support.
2017-05-10 09:58:28 -04:00
Nathan Froyd fe42aa0b9d Bug 1363426 - part 1 - remove #ifdeffery in Atomics.h; r=erahm
Every platform where we use GCC has <atomic>, so there's no need to use
GCC-specific __sync* intrinsics anymore.  The <atomic> header may
generate better code for several operations, as well.
2017-05-10 09:58:28 -04:00
Carsten "Tomcat" Book cfae756c43 Backed out changeset 1b9ecb9b9fe8 (bug 1331718) 2017-05-10 12:09:08 +02:00
Carsten "Tomcat" Book 157a9fcde2 Backed out changeset 4527bd35cc4e (bug 1331718) 2017-05-10 12:09:06 +02:00
Bas Schouten e8f8394b4e Bug 1331718 - Part 2: Add unit tests for SmallPointerArray. r=froydnj
MozReview-Commit-ID: 7xdQfv7Dpph
2017-05-10 05:07:38 +02:00
Bas Schouten 1e05e1f138 Bug 1331718 - Part 1: Add small pointer array. r=froydnj
MozReview-Commit-ID: EapU5nBw1d3
2017-05-10 05:07:37 +02:00
Tom Tromey aa6e054b71 Bug 1334279 - mark vsprintf-likes with MOZ_FORMAT_PRINTF; r=froydnj
This annotates vsprintf-like functions with MOZ_FORMAT_PRINTF.  This may
provide some minimal checking of such calls (the GCC docs say that it
checks for the string for "consistency"); but in any case shouldn't
hurt.

MozReview-Commit-ID: HgnAK1LiorE

--HG--
extra : rebase_source : 9c8d715d6560f89078c26ba3934e52a2b5778b6a
2017-05-04 12:10:19 -06:00
Kris Maglione 7d8720d597 Bug 1359653: Part 3 - Add a clear() method and move asssignment operator to AutoCleanLinkedList. r=waldo
MozReview-Commit-ID: 2bUTMPviJzg

--HG--
extra : source : b49bd726c8a6e955c672df17b2b9134ab3ad34d5
2017-05-02 17:54:18 -07:00
Sebastian Hengst d8a3163a9b Backed out changeset b49bd726c8a6 (bug 1359653) 2017-05-06 11:02:32 +02:00
Kris Maglione e514005e37 Bug 1359653: Part 3 - Add a clear() method and move asssignment operator to AutoCleanLinkedList. r=waldo
MozReview-Commit-ID: 2bUTMPviJzg

--HG--
extra : rebase_source : c02a5c07030a8c2d5ad47a586a5af8f02e5ec2f6
2017-05-02 17:54:18 -07:00
Carsten "Tomcat" Book fdc689ba16 merge mozilla-inbound to mozilla-central a=merge 2017-05-05 15:17:26 +02:00
Olli Pettay a991315918 Bug 1358761 - dummy handling for return values in test, r=bustage 2017-05-05 10:43:37 +03:00
Olli Pettay 0096f25b51 Bug 1358761 - replace PurpleBlock with SegmentedVector to reduce indirect memory accesses when calling suspect, r=mccr8,nfroyd
--HG--
extra : rebase_source : e74be6bfb9efbba9361d2ce3c22518379a332200
2017-05-05 00:49:22 +03:00
Eric Rahm 14b9ff6984 Bug 935809 - Part 0: Include assertion header in DoublyLinkedList.h. r=waldo
MozReview-Commit-ID: 4G37uslYlOb
2017-05-03 19:22:39 -07:00
Sebastian Hengst 4183907e15 Backed out changeset ab81a462fcd4 (bug 935809) for jetpack and devtools failures, e.g. in browser_markers-docloading-03.js. r=backout 2017-05-03 00:22:28 +02:00
Eric Rahm e9ead4b2e8 Bug 935809 - Part 0: Include assertion header in DoublyLinkedList.h. r=waldo
MozReview-Commit-ID: 4G37uslYlOb
2017-05-02 14:21:52 -07:00
Jim Chen a1a22f23e5 Bug 1357873 - Fix up 64-bit Android macros in IntegerPrintfMacros.h; r=Waldo
On 64-bit Android, the inttypes.h macros for [u]int_fastN_t types (e.g.
int_fast16_t) use "d", "u", etc. as the format specifier, but the types
themselves are defined as `long`, `unsigned long`, etc. This patch
redefines the macros as `PRId64`, `PRIu64`, etc. to provide correct
behavior.
2017-05-01 14:46:00 -04:00
Carsten "Tomcat" Book 824aad1190 Backed out changeset 19ea645f562e (bug 1357799) on request 2017-04-27 15:09:53 +02:00
Cameron McCormack a5624c6f9d Bug 1356103 - Part 1: Add WeakPtrTraits to allow SupportsWeakPtr classes to opt in to more permissive thread ownership assertions. r=bholley
MozReview-Commit-ID: 62pJc2N8aIo

--HG--
extra : rebase_source : b1fed73b2c03d1cc1261a674a44fe578c2fe7d99
2017-04-30 12:14:06 +08:00
Iris Hsiao 0a6db9e69f Backed out 12 changesets (bug 1356103) for build bustage at PostTraversalTask.h
Backed out changeset 9fb487252c28 (bug 1356103)
Backed out changeset 301237c65945 (bug 1356103)
Backed out changeset 7bc3a4861a39 (bug 1356103)
Backed out changeset 2f383d89184b (bug 1356103)
Backed out changeset a03112e1c9d5 (bug 1356103)
Backed out changeset c60b4c9cbd83 (bug 1356103)
Backed out changeset 34280baeaabe (bug 1356103)
Backed out changeset 31a0881cfb47 (bug 1356103)
Backed out changeset 529d037f9c33 (bug 1356103)
Backed out changeset 1c7831db6b07 (bug 1356103)
Backed out changeset 559f06e32df3 (bug 1356103)
Backed out changeset 784865d234cd (bug 1356103)
2017-05-04 17:56:25 +08:00
Cameron McCormack e94f4a51be Bug 1356103 - Part 1: Add WeakPtrTraits to allow SupportsWeakPtr classes to opt in to more permissive thread ownership assertions. r=bholley
MozReview-Commit-ID: 62pJc2N8aIo

--HG--
extra : rebase_source : b1fed73b2c03d1cc1261a674a44fe578c2fe7d99
2017-04-30 12:14:06 +08:00
Iris Hsiao 15d2d6ea30 Backed out 4 changesets (bug 935809) for build bustage. a=backout
CLOSED TREE

Backed out changeset 8a48682a5150 (bug 935809)
Backed out changeset 8260fdc2c008 (bug 935809)
Backed out changeset f53c07293e1f (bug 935809)
Backed out changeset 4176ccbd4970 (bug 935809)

--HG--
extra : amend_source : cb83d78b0bed2e4b41dc5937a2b01008aa8a84bb
2017-04-27 10:13:45 +08:00
Eric Rahm 82094ed7f5 Bug 935809 - Part 0: Include assertion header in DoublyLinkedList.h. r=waldo
MozReview-Commit-ID: 4G37uslYlOb
2017-04-26 12:19:54 -07:00
Carsten "Tomcat" Book 8f4e4ca99b merge mozilla-inbound to mozilla-central a=merge 2017-04-26 08:41:31 +02:00
Myk Melez 017f4a74e5 Bug 1357897 - ensure __has_feature(thread_local) before using it on Mac; r=froydnj
Bug 1348419 enabled thread-local storage for Mac, but only Xcode 8+
supports that feature, which busted building with Xcode 7-.  This change
fixes that bustage by ensuring a Mac compiler supports the feature
before using it.
2017-04-25 15:23:26 -07:00
Sebastian Hengst c6d60cc8f8 Backed out changeset 9809ac55fe34 (bug 1357897) for build bustage at ThreadLocal.h:35:67. r=backout on a CLOSED TREE 2017-04-25 21:16:43 +02:00
Myk Melez 4024ee8f8d Bug 1357897 - ensure __has_feature(thread_local) before using it on Mac; r=froydnj
Bug 1348419 enabled thread-local storage for Mac, but only Xcode 8+
supports that feature, which busted building with Xcode 7-.  This change
fixes that bustage by ensuring a Mac compiler supports the feature
before using it.
2017-04-25 12:00:47 -07:00
Tom Tromey 66313f92eb Bug 1349655 - remove sig_safe_t in favor of mozilla::Atomic<uint32_t>; r=djvj,njn
Remove the definition of sig_safe_t, which is only used by PseudoStack,
and replace the uses with mozilla::Atomic<uint32_t>.

MozReview-Commit-ID: GcPd9R94Vci

--HG--
extra : rebase_source : dcc05a219d59ffdc0486ef2e7118d888c6a93fda
2017-03-22 13:57:31 -06:00
Jan-Ivar Bruaroey aa0a07c837 Bug 1354642 - Add MakeRefPtr<> helper class. r=Ehsan
MozReview-Commit-ID: es34uMTZ00

--HG--
extra : rebase_source : 8738a70a47cceece1b56b66f741e29275c066d92
2017-04-07 15:08:42 -04:00
David Major c4a6792abb Bug 1358169: Fix Span.h constexprs for VS2017. r=froydnj
I can't speak for whether the MOZ_SPAN_GCC_CONSTEXPR on operator> is necessary, but I'm going on the assumption that any callers of it must also be in the same bucket of constexpr-ness.
2017-04-20 14:58:38 -04:00
Carsten "Tomcat" Book 7aa21f3b53 merge mozilla-inbound to mozilla-central a=merge 2017-04-20 11:13:07 +02:00
Wes Kocher 2aa3f2f2e2 Merge m-c to autoland, a=merge 2017-04-19 17:17:20 -07:00
Bill McCloskey fb57ac5b38 Bug 1355178 - Remove unnecessary refcounting from MessageChannel::mPending (r=froydnj)
MozReview-Commit-ID: DWEF1ObNmMa
2017-04-19 11:51:14 -07:00
Tom Tromey f8b4c97867 Bug 1348419 - Use thread_local on XP_WIN and XP_MACOSX; r=froydnj
MozReview-Commit-ID: 75dTUk27p94

--HG--
extra : rebase_source : f93d5b063a6ff14d8eb6f5236828450f3f784b8c
2017-03-22 12:04:21 -06:00
Sebastian Hengst 39c052547d Backed out changeset e39e02b11392 (bug 1348419) for failing at jsutil.cpp(42) with "data with thread storage duration may not have dll interface". r=backout 2017-04-15 01:01:11 +02:00
Tom Tromey 26856534d1 Bug 1348419 - Use thread_local on XP_WIN and XP_MACOSX; r=froydnj
MozReview-Commit-ID: 75dTUk27p94

--HG--
extra : rebase_source : e0b3b4c11c6d8e6b9aaa78912c48209ba87a8486
2017-03-22 12:04:21 -06:00
Steve Fink 678a2ca3dc Bug 1356063 - Make Maybe<T> inherit static analysis annotations from T, r=mystor
--HG--
extra : rebase_source : 7f5e41e471b319f0143e9f91a331b1edcafc7359
2017-04-13 11:35:01 -07:00
Henri Sivonen 4064812605 Bug 1353324 - Add const char16_t variant of MakeCStringSpan() and rename both to MakeStringSpan(). r=froydnj.
MozReview-Commit-ID: E6LEZpe5H4w

--HG--
extra : rebase_source : dd6fe66be289e94751ecdf34113d79a091c9c8f8
2017-04-04 14:04:14 +03:00
Tom Ritter fcb35c70f7 Bug 1331349 Fix printf formatting errors in MinGW compilation r=froydnj
MozReview-Commit-ID: A4PMABfxzez

--HG--
extra : rebase_source : d0c40a495ad390aeb71ddc81c33daa081f6e0ba7
2017-03-31 00:14:43 -05:00
Henri Sivonen c514501f1a Bug 1295611 - Add mozilla::Span. r=froydnj,gerv.
MozReview-Commit-ID: HGNDClVctbE
2017-03-31 13:32:18 +03:00
Benjamin Bouvier 1397cfaed9 Bug 1352073: Follow-up: don't use reserved() in opt builds; r=bustage
Also fix style to make it match local style.

MozReview-Commit-ID: D2HTik6HwxJ

--HG--
extra : rebase_source : 73d5a6d63597764d904f2d254ced08192871fdc0
2017-03-31 11:01:35 +02:00
Benjamin Bouvier 0eeedcfb9c Bug 1352073: Fix off-by-one in Vector::insert; r=luke
MozReview-Commit-ID: HY0DYSAbi6M

--HG--
extra : rebase_source : 15aaf8576c6c78e1dd097685947507445808ee0c
extra : histedit_source : 9ece90f05a7666784a381be085a82231aef5ef29
2017-03-30 16:20:30 +02:00
Sylvestre Ledru 612d9ada4d Bug 1357799 - Enable the diagnostic assert during the beta staged roll out period r=bholley
MozReview-Commit-ID: KstUhJH0bAz

--HG--
extra : rebase_source : 799023c9a69b0fea86b0204efffe12b560baa6e3
2017-04-19 18:07:04 +02:00
Jeff Gilbert c0ed980ee2 Bug 1349379 - Clarify when to use already_AddRefed. - r=dbaron,waldo
MozReview-Commit-ID: 2MlOhirdzlQ
2017-03-29 13:40:42 -07:00
Terrence Cole 4cd9f1b817 Bug 1277725 - Implement a list class that is both usable and efficient. r=waldo
MozReview-Commit-ID: JnhnomQwSja
2016-06-02 09:18:40 -07:00
JW Wang 729d92dc53 Bug 1350790 - Add constexpr to CheckedInt. r=froydnj
MozReview-Commit-ID: KNJQcYiBlHM

--HG--
extra : rebase_source : 51609420239d195aaf416c1a18ff028894638775
extra : source : 96678f32ac0a09d911088df18fe4e4e95ba52930
2017-03-27 10:59:31 +08:00
Tom Ritter da72de1e2e Bug 1349957 Change reference (in disabled code) to new/correct member r=froydnj
MozReview-Commit-ID: IwA2Kro40e2

--HG--
extra : rebase_source : 0bd5f3e85ba36d068f0b23984a1faa5dcd4ccd78
2017-03-23 10:27:25 -05:00
Thinker K.F. Li 48e9a43dc4 Bug 1331173 - Increase header segment capacity for TaskTracer. r=billm
--HG--
extra : rebase_source : 3cc829ac53c520896d3f28ddf4a8e27a6eac6fc1
2017-03-10 02:35:00 +01:00
David Major 09f473e5a8 Bug 1345331: Include <intrin.h> at top-level before lz4.c can include it in a namespace. r=Waldo
MozReview-Commit-ID: 8CI8JgR3R1L

--HG--
extra : rebase_source : d3e60e458908fb621c3608a2a3f2e08eb739d87f
2017-03-09 15:11:15 +13:00
Nicolas B. Pierron dccaffb213 Bug 1325073 - Rename mozilla::MakeGenericErrorResult to mozilla::Err. r=Waldo 2017-03-08 13:33:07 +00:00
Carsten "Tomcat" Book f6885163cd Merge mozilla-central to mozilla-inbound 2017-03-08 14:28:34 +01:00
Michael Layzell 46ade67ada Bug 1331434 - Part 2: Add MOZ_MAY_CALL_AFTER_MUST_RETURN and MOZ_MUST_RETURN_FROM_CALLER annotations, r=ehsan
MozReview-Commit-ID: 1o2egvdhkqT
2017-03-07 19:06:48 -05:00
Michael Layzell 4689eec07a Bug 1331434 - Part 1: Add an analysis to require a return after calls to annotated functions, r=ehsan
MozReview-Commit-ID: 7NqXap8FdSn
2017-03-07 19:06:48 -05:00
Xidorn Quan b7ebe87cdc Bug 1345074 - Add MOZ_FOR_EACH_SEPARATED which adds separator between items. r=Waldo
MozReview-Commit-ID: IWqs17MLhHD

--HG--
extra : rebase_source : adc004b185501c9fe8109589fb671cd5a6551002
2017-03-07 22:28:49 +11:00
Jeff Walden bae8a13c6e Bug 1341951 - Remove mozilla::AlignedStorage, and inline its sole use into js::jit::RInstructionStorage. r=nbp 2017-02-22 18:27:51 -08:00
Jeff Walden fceda02d9b Bug 1287006 - Use |alignas(T) unsigned char mStorage[sizeof(T)]| instead of AlignedStorage2 inside Maybe. r=froydnj
--HG--
extra : rebase_source : 59e8039481b332decacd1acc7cf1cb73ec8b78cf
2017-01-30 15:56:04 -08:00
Emanuel Hoogeveen 8867f10c5a Bug 1338574 - Assertions.cpp can't use MOZ_CRASH_ANNOTATE, so set the crash reason directly. r=froydnj 2017-02-22 15:42:00 -05:00
Jeff Walden d73ce21741 Bug 1287006 - Adjust media/ code to not pass Maybe (or any class containing a Maybe member) by value, only by reference or pointer. r=jw_wang, r=rjesup
--HG--
extra : rebase_source : 176a2afde5772bbdf43f0f6dc8082201acadcf4f
2017-02-13 09:07:40 -08:00
Jeff Walden 8529eb5317 Bug 1338374 - Shrink Vector from (usually) four pointers in size to three when no inline storage is used. r=froydnj
--HG--
extra : rebase_source : bc2c7f706305d04954162720b011029c8095229f
2017-01-30 15:56:05 -08:00
Jeff Walden d5deea2a4f Bug 1338374 - Make Vector not use AlignedStorage for its inline element storage. r=froydnj, r=keeler
--HG--
extra : rebase_source : 81eb5278404b4843ed5a59819f6000f74200aa41
2017-01-30 15:56:05 -08:00
Jeff Walden 8f8272ae04 Bug 1339555 - Make various operator-news into a known-non-null pointer use a ::operator new overload that odesn't null-check. r=froydnj
--HG--
extra : rebase_source : cad3ffa778db607bb2ccee2ac42671e60d3c8160
2017-02-14 11:23:18 -08:00
Emanuel Hoogeveen 9c7c14c872 Bug 1338574 - Part 1: Add MOZ_CRASH_UNSAFE_OOL and MOZ_CRASH_UNSAFE_PRINTF to crash with a runtime generated explanation string. r=froydnj
--HG--
extra : rebase_source : 3ba633aa77ab96f763ea03a8308c539c9c2aeda0
2017-02-21 18:01:41 +01:00
Emanuel Hoogeveen 4308a12546 Bug 1338574 - Part 0: Pass __LINE__ as an argument to MOZ_REALLY_CRASH() instead of using it directly. r=froydnj
--HG--
extra : rebase_source : 1df7776a4627c4af417be78649ba22203dca8026
2017-02-21 18:01:38 +01:00
Tom Tromey b3223b115f Bug 1060419 - fix comment in IntegerPrintfMacros.h to reflect Printf.h change, r=froydnj
MozReview-Commit-ID: 1Zdi7XNHUHL

--HG--
extra : rebase_source : f9c3cfd96504b232ad25cf1c49f3fcb07f461cc1
2016-12-14 14:16:20 -07:00
Jeff Walden d7372e37d9 Bug 1338374 - Use alignas/alignof to define Variant's internal raw storage. r=froydnj
--HG--
extra : rebase_source : a75613ba7c17ceccf20e6f096a118bfedfa1eb15
2017-01-30 15:56:05 -08:00
Jeff Walden 1811cee01b Bug 1338374 - Make tl::Min/Max variadic. r=froydnj
--HG--
extra : rebase_source : 140441135e9ee1fcde0541e39a19e1a5c47203c8
2017-01-30 15:56:05 -08:00
Jeff Walden 318b206490 Bug 1338374 - Use alignas/alignof, and don't use sizeof where alignof should have been used, in MaybeOneOf. r=froydnj
--HG--
extra : rebase_source : eb102c6344a6b2fc5a8c904d3361ac3f6735dd43
2017-01-30 15:56:05 -08:00
Masatoshi Kimura a35278e9a7 Bug 1325368 - Assume Win7 or later when testing Windows version. r=jimm
MozReview-Commit-ID: 718G0htR17H

--HG--
extra : rebase_source : e6f7a3584f03c802218a1de526345e1df1e67cf8
2017-01-29 16:42:46 +09:00
Nicolas B. Pierron 06bb70ebad Bug 1318677 part 3 - mozilla::Result: Add a new packing strategy to pack small enumerated values in a single word. r=Waldo 2017-02-07 18:57:43 +00:00
Nicolas B. Pierron 60cb2de0a8 Bug 1318677 part 2 - mozilla::Result: Use a single enum to dispatch to the Result implementation. r=Waldo 2017-02-07 18:57:43 +00:00
Nicolas B. Pierron cc14318018 Bug 1318677 part 1 - Use a smaller mask to remove the error tag. r=jandem 2017-02-07 18:57:42 +00:00
Jonathan Watt 33a6ca0109 Bug 1335780, part 2 - Tests for Maybe<const Type>. r=froydnj 2017-01-03 08:53:05 +00:00
Jonathan Watt 94c9b96404 Bug 1335780, part 1 - Make Maybe<T>::emplace() work when T is const. r=froydnj 2017-01-03 08:53:05 +00:00
Jeff Walden 3c1ae9aa91 Bug 1332797 - Delete the temporary directory used to store the double-conversion clone when all's said and done. r=froydnj
--HG--
extra : rebase_source : 838b42e130e757aae6795b41f75e0d04f0644a65
2017-01-26 13:26:40 -08:00
Jeff Walden cd89862c7a Bug 1332797 - Note the double-conversion git revision last used when importing double-conversion code. r=froydnj
--HG--
extra : rebase_source : 16af43fcda79ffc4743fda12c9ce945ee4fd8a26
2017-01-24 12:56:06 -08:00
Jeff Walden 5a966975cc Bug 1332797 - Update our double-conversion import using the command |./update.sh d8d4e668ee1e6e10b728f0671a89b07d7c4d45be|. r=generating-script-was-reviewed
--HG--
extra : rebase_source : 484d0ba0085c70b1e75790a098cbe4a1a9a0c95b
2017-01-24 09:30:13 -08:00
Jeff Walden 0fdc1cbc93 Bug 1332797 - Make update.sh fail if applying a local patch creates a *.{orig,rej} file. r=froydnj
--HG--
extra : rebase_source : 0b774ad1df5a8bc95d4af806f80bb7a2f6f8d738
2017-01-24 09:29:50 -08:00
Jeff Walden dd137bcf96 Bug 1332797 - Update our various local patches to apply against tip double-conversion. r=froydnj
--HG--
extra : rebase_source : 6b785879615aea4b9be0c31edb51bc86f8c958f9
2017-01-24 09:29:47 -08:00
Jeff Walden bdf8fd6644 Bug 1332797 - Adjust update.sh to work against tip double-conversion. r=froydnj
--HG--
extra : rebase_source : b34256579fe5e55fa1a3a7a2e4ae1495265055f4
2017-01-23 15:13:21 -08:00
Jeff Walden 645ca06a98 Bug 1332797 - Move mfbt/double-conversion source files into a new source/ subdirectory, to segregate upstream files from update.sh and our local patches. r=froydnj
--HG--
rename : mfbt/double-conversion/LICENSE => mfbt/double-conversion/source/LICENSE
rename : mfbt/double-conversion/README => mfbt/double-conversion/source/README
rename : mfbt/double-conversion/bignum-dtoa.cc => mfbt/double-conversion/source/bignum-dtoa.cc
rename : mfbt/double-conversion/bignum-dtoa.h => mfbt/double-conversion/source/bignum-dtoa.h
rename : mfbt/double-conversion/bignum.cc => mfbt/double-conversion/source/bignum.cc
rename : mfbt/double-conversion/bignum.h => mfbt/double-conversion/source/bignum.h
rename : mfbt/double-conversion/cached-powers.cc => mfbt/double-conversion/source/cached-powers.cc
rename : mfbt/double-conversion/cached-powers.h => mfbt/double-conversion/source/cached-powers.h
rename : mfbt/double-conversion/diy-fp.cc => mfbt/double-conversion/source/diy-fp.cc
rename : mfbt/double-conversion/diy-fp.h => mfbt/double-conversion/source/diy-fp.h
rename : mfbt/double-conversion/double-conversion.cc => mfbt/double-conversion/source/double-conversion.cc
rename : mfbt/double-conversion/double-conversion.h => mfbt/double-conversion/source/double-conversion.h
rename : mfbt/double-conversion/fast-dtoa.cc => mfbt/double-conversion/source/fast-dtoa.cc
rename : mfbt/double-conversion/fast-dtoa.h => mfbt/double-conversion/source/fast-dtoa.h
rename : mfbt/double-conversion/fixed-dtoa.cc => mfbt/double-conversion/source/fixed-dtoa.cc
rename : mfbt/double-conversion/fixed-dtoa.h => mfbt/double-conversion/source/fixed-dtoa.h
rename : mfbt/double-conversion/ieee.h => mfbt/double-conversion/source/ieee.h
rename : mfbt/double-conversion/strtod.cc => mfbt/double-conversion/source/strtod.cc
rename : mfbt/double-conversion/strtod.h => mfbt/double-conversion/source/strtod.h
rename : mfbt/double-conversion/utils.h => mfbt/double-conversion/source/utils.h
extra : rebase_source : e84171373b2f766698ea48d23484ed05463a4d8a
2017-01-23 15:11:50 -08:00
Jeff Walden 70018b9399 Bug 1332797 - Clear out the current double-conversion copy before updating it so that our copying properly handles added/removed files. r=froydnj
--HG--
extra : rebase_source : b4a4b088dfe3a1d08cc1600c04da5dc65e484807
2017-01-23 15:10:47 -08:00
Jeff Walden ad91d7c540 Bug 1332797 - Make the double-conversion update script clone the double-conversion repository into a temporary directory, then copy out of it, taking an optional git revision to use. After this patch, |./update.sh 04cae7a8d5ef3d62ceffb03cdc3d38f258457a52| is a no-op. r=froydnj
--HG--
extra : rebase_source : 6fab09db9cec6aaba6004014d32c93338127bd26
2017-01-23 11:27:01 -08:00
Steve Fink 7700214282 Bug 1264053 - Transfer DifferentProcess ArrayBuffers by copying, r=jorendorff
--HG--
extra : rebase_source : aed39bb2f92888af7626fd4c37df366cb1761bb8
extra : histedit_source : 4e231e7ef1b0b21d0c4bff2ebaa611e8b321e6d4
2017-01-19 14:02:40 -08:00
Botond Ballo 79e41b270d Bug 1331495 - Add an operator<< overload for Maybe. r=froydnj
MozReview-Commit-ID: 8TcYoikeCvR

--HG--
extra : rebase_source : 591e3c635ae5521418105e2ad1fc2672143eceeb
2017-01-18 13:53:35 -05:00
John Paul Adrian Glaubitz ba58645c87 Bug 1329194 - mfbt:tests: Define RETURN_INSTR for SH in TestPoisonArea. r=glandium 2017-01-20 09:12:22 +09:00
Tom Ritter 4d9bda0d08 Bug 1317642 Disable WeakPtr thread assertions on MinGW r=froydnj
MinGW has two threading models: win32 API based, which disables std::thread,
and POSIX based which enables it but requires an emulation library (winpthreads).

Rather than attempting to switch to pthread emulation at this point, we are
disabling the std::thread based assertion checking for WeakPtr on MinGW.

MozReview-Commit-ID: BmHo70n6AuK

--HG--
extra : rebase_source : 08495775b2925a797c8098216911d30c0b79ef3d
2017-01-13 13:50:21 -06:00
David Major e46dbc2c0f Bug 1324093 - Part 4: Make MOZ_Report{Crash,AssertionFailure} be MOZ_NEVER_INLINE. r=froydnj
You'd think that this would throw off the assertion stacks in nsTraceRefcnt::WalkTheStack. But as far as I can tell, it was already setting |skipFrames| too high!

On top of that, the function was getting out-of-lined in some instances already. It really should have been MOZ_ALWAYS_INLINE_EVEN_DEBUG.

MozReview-Commit-ID: J2FZmi0pKro

--HG--
extra : rebase_source : 20e5be9f8c21637a28435f47b8ab2de101825679
2017-01-18 09:37:54 +13:00
David Major 0cf4adb5f3 Bug 1324093 - Part 3.5: Add MOZ_MAYBE_UNUSED to mfbt/Attributes.h. r=froydnj
MozReview-Commit-ID: Ef1nkRipaDg

--HG--
extra : rebase_source : ea298dc948a027e5a686c2f022cce5d8cb170f27
2017-01-18 09:37:54 +13:00
David Major 2166409a1d Bug 1324093 - Part 3: Don't MOZ_ReportAssertionFailure in non-debug builds. r=froydnj f=Waldo f=nbp
Not only does this trim the code, it also makes MOZ_RELEASE_ASSERT follow the advice of MOZ_CRASH earlier in the file:

 * If we're a DEBUG build and we crash at a MOZ_CRASH which provides an
 * explanation-string, we print the string to stderr.  Otherwise, we don't
 * print anything; this is because we want MOZ_CRASH to be 100% safe in release
 * builds, and it's hard to print to stderr safely when memory might have been
 * corrupted.

MozReview-Commit-ID: Kuxzn1v9Vfs

--HG--
extra : rebase_source : 5c6efe7cb9adb1c366b423d6ff8f95002512985c
2017-01-18 09:37:46 +13:00
David Major 77329182eb Bug 1324093 - Part 2: Don't AnnotateMozCrashReason on debug builds. r=bsmedberg
I left gMozCrashReason visible (but not meaningfully used) in all builds, in order to match the behavior of Assertions.cpp, and to avoid more #ifdef clutter in nsExceptionHandler.cpp.

MozReview-Commit-ID: smoFkddGzd

--HG--
extra : rebase_source : 498f927f62fc944edf254c2ff3b115131367a506
2017-01-18 09:34:02 +13:00
David Major dd8c1f9d4e Bug 1324093 - Part 1: Move MOZ_REALLY_CRASH's null-deref and TerminateProcess into a never-inline function. r=froydnj
The C versus C++ distinction was only there so that Android could make sure it used the global ::abort. I didn't see the need to maintain the distinction for Windows. (Besides, with this change we're no longer doing textual inclusion of "TerminateProcess" in the macro, so people can't take over the name.)

Linux's abort sequence wasn't long enough to be troublesome, so I left it alone.

MozReview-Commit-ID: Ah5XtWpevGz

--HG--
extra : rebase_source : 37c3fb4c50bcba8e48c6a965a02e3f8608940538
2017-01-18 09:33:25 +13:00
David Major d27150b889 Bug 1324093 - Part 0: Use MOZ_{BEGIN,END}_EXTERN_C in Assertions.h. r=froydnj
Drive-by cleanup.

MozReview-Commit-ID: 8slQlbS3NS2

--HG--
extra : rebase_source : 2df96c531b8cfa03ca17c134393c5f054ca25927
2017-01-18 09:32:47 +13:00
James Cheng 642927f52b Bug 1329334 - Variant::as<> should use MOZ_RELEASE_ASSERT. r=froydnj
MozReview-Commit-ID: E95959RYm2r

--HG--
extra : rebase_source : 774fcf05c3e6baf080a0e74358e7441242465bb4
2017-01-10 14:24:49 +08:00
Nicholas Nethercote ceb22bead5 Bug 1325541 - Expand comments for MOZ_MUST_USE. r=froydnj.
DONTBUILD because it's a comment-only change.

--HG--
extra : rebase_source : 1b2343279f15a05ba633a0407f3eba07d6231083
2016-12-23 16:11:33 +11:00
David Major bbf01a2d5f Bug 1329236: Remove the DECLTYPE(expr) workaround in TestMaybe.cpp. r=ehsan
MozReview-Commit-ID: 5n5iRdJKn7M

--HG--
extra : rebase_source : 181165142b1f39c59c404b0b692383dd63a423b9
2017-01-06 12:53:20 -06:00
Nathan Froyd f6a73ed989 Bug 1315274 - rename mozilla::MakeRange to mozilla::IntegerRange; r=Waldo
MakeRange is just way too generic for this sort of thing.
2017-01-06 09:22:53 -05:00
Jason Orendorff 5d60d5ca87 Bug 1312001 - Scramble hash codes securely, to avoid leaking bits of object and symbol addresses.
MozReview-Commit-ID: yR1cIjrlPP

--HG--
extra : rebase_source : 871821e53eee5502cd255d52f02665f6845e3f09
2016-11-30 15:31:56 -06:00
Chris Peterson 20bc668a02 Bug 1280295 - Remove MOZ_HAVE_REF_QUALIFIERS. r=froydnj 2017-01-03 22:42:33 -08:00
Xidorn Quan b4ceaa3474 Bug 1325351 part 3 - Make Maybe accept value from different Maybe type when the inner type is convertible. r=froydnj
MozReview-Commit-ID: 2kYTncYh1Or

--HG--
extra : rebase_source : f3263ce10f3afae6e8ac734296dbb0e641c55c99
2016-12-23 11:49:33 +11:00
Xidorn Quan 30961dadd7 Bug 1325351 part 2 - Simplify 'Some' function. r=froydnj
MozReview-Commit-ID: AkLVQw9WYwy

--HG--
extra : rebase_source : 97449d0b2376d53ee7761da2a1ab425492c70ba6
2016-12-23 11:32:33 +11:00
Xidorn Quan 3526b1e58d Bug 1325351 part 1 - Remove workaround for VC in Maybe. r=froydnj
MozReview-Commit-ID: Anlrf3D2WtN

--HG--
extra : rebase_source : 9cc2e29e374753ad40774ebd0a0efce9f9449e3b
2016-12-29 10:58:01 +11:00
Sebastian Hengst 82a8828349 Backed out changeset b4d189ca8add (bug 1325351) for spidermonkey cgc and plain shell failure in Maybe.h. r=backout 2016-12-27 10:41:01 +01:00
Sebastian Hengst fe7c0739e3 Backed out changeset 79754b9b89b7 (bug 1325351) 2016-12-27 10:39:49 +01:00
Sebastian Hengst 6c5fadc6f5 Backed out changeset 45f0755ff471 (bug 1325351) 2016-12-27 10:39:45 +01:00
Xidorn Quan 3cead98957 Bug 1325351 part 3 - Make Maybe accept value from different Maybe type when the inner type is convertible. r=froydnj
MozReview-Commit-ID: 2kYTncYh1Or

--HG--
extra : rebase_source : 2d15fb3c252f1c0505d739d9540079ceb9296b39
2016-12-23 11:49:33 +11:00
Xidorn Quan 254c28b64c Bug 1325351 part 2 - Simplify 'Some' function. r=froydnj
MozReview-Commit-ID: AkLVQw9WYwy

--HG--
extra : rebase_source : 8bdd5aeb7761d32c25e55966275d9a0804eb3948
2016-12-23 11:32:33 +11:00
Xidorn Quan 32962b7da7 Bug 1325351 part 1 - Remove workaround for VS2010 in Maybe. r=froydnj
MozReview-Commit-ID: Anlrf3D2WtN

--HG--
extra : rebase_source : a90c32e397c5081e51e6c2461d045591afae9320
2016-12-23 11:32:09 +11:00
Luke Wagner 7f0959b60f Bug 1313351 - Fix js::RefCounted to not do leak checking. r=jandem 2016-12-23 21:13:26 +01:00
Nathan Froyd a4e86a0fbf Bug 1322792 - require GCC 4.9 to build; r=glandium 2016-12-23 05:47:31 -05:00
Carsten "Tomcat" Book 0aed7a4ac5 Merge mozilla-central to mozilla-inbound
--HG--
rename : testing/docker/base-build/HASH => taskcluster/docker/base-build/HASH
rename : testing/docker/base-test/HASH => taskcluster/docker/base-test/HASH
rename : testing/docker/centos6-build-upd/HASH => taskcluster/docker/centos6-build-upd/HASH
rename : testing/docker/centos6-build/HASH => taskcluster/docker/centos6-build/HASH
rename : testing/docker/decision/HASH => taskcluster/docker/decision/HASH
rename : testing/docker/image_builder/HASH => taskcluster/docker/image_builder/HASH
rename : testing/docker/recipes/tooltool.py => taskcluster/docker/recipes/tooltool.py
rename : testing/docker/tester/HASH => taskcluster/docker/tester/HASH
2016-12-22 16:25:35 +01:00
Ting-Yu Chou 4e68f1ffa7 Bug 1322465 part 8 - Use explicit/MOZ_IMPLICIT for the unary constructors in mfbt/. r=Ehsan
MozReview-Commit-ID: 2TpfrAaAIuu

--HG--
extra : rebase_source : 4fb5af1beb94c059cbadfaf27fe3949ae8b85efb
2016-12-16 15:57:15 +08:00
Jeff Walden c8b800005a Bug 1319740 - Parametrize ComputeSingleDisplayName based on the character type of the key string, and iterate through the string using iterators, not using null-termination. r=arai
--HG--
extra : rebase_source : 1c11bd11300dd467e8579faec677d1b7cb9f2e1b
2016-12-02 14:02:36 -08:00
Luke Wagner 549d7571b3 Bug 1320905 - Add js::RefCounted that uses js_delete (r=waldo) 2016-12-05 15:59:18 -08:00
Carsten "Tomcat" Book 1e97bdd3fb Backed out changeset f38852711f38 (bug 1320905) for bustage on a CLOSED TREE
--HG--
extra : amend_source : 2e75cec3778e0ceb8a5d99d94004968604403f3a
2016-12-05 16:13:36 +01:00
Luke Wagner 0bf74100a8 Bug 1320905 - Add js::RefCounted that uses js_delete (r=waldo)
MozReview-Commit-ID: D0mSwdm0nn0
2016-12-05 08:46:27 -06:00
Nathan Froyd 2ebbd09068 Bug 1320752 - remove mozilla/Function.h; r=gerald
We have std::function available now, which is likely to be somewhat more
efficient.
2016-11-28 11:03:53 -05:00
Carsten "Tomcat" Book a666835bf5 merge mozilla-inbound to mozilla-central a=merge
--HG--
extra : rebase_source : 7f6b0f633da54f747b30496110e5260a226fe249
2016-11-25 15:36:56 +01:00
James Cheng c627faaa2b Bug 1319673 - Make it compile error when instantiate a Variant with duplicate type. r=Tomcat,Waldo
MozReview-Commit-ID: IKoLU2FjtzA

--HG--
extra : rebase_source : dcf3ff852af5a985c6c77dcfb1e2a901e92fb869
2016-11-23 15:12:50 +08:00
Matt Woodrow 1985af695f Bug 1319626 - Part 2: Add BorderLayer class and basic support for them. r=mstange
--HG--
extra : rebase_source : de87afc8015649fb5f4a7c4da5f4dc49e19f3d85
2016-11-24 18:11:30 +13:00
Carsten "Tomcat" Book 831c1e052a Backed out changeset 4909935f8081 (bug 1319626) 2016-11-24 17:02:32 +01:00
Matt Woodrow 15af88120a Bug 1319626 - Part 2: Add BorderLayer class and basic support for them. r=mstange 2016-11-24 18:11:30 +13:00
Carsten "Tomcat" Book 8b27dda5d1 merge mozilla-inbound to mozilla-central a=merge 2016-11-22 15:53:05 +01:00
James Cheng c100bc54ce Bug 1319016 - Part2 - Make IsVariant class use IntegralConstant as true false type. r=froydnj
MozReview-Commit-ID: G4ohbnUy049

--HG--
extra : rebase_source : 2c20783fe3556ecd0cc04ec1b37b002d044a4e06
2016-11-21 14:28:49 +08:00
James Cheng cb26e3892f Bug 1319016 - Part1 - Make IntegralConstant::value use constexpr. r=froydnj
MozReview-Commit-ID: DtrDeMC1f5T

--HG--
extra : rebase_source : 820fb6a1a3562bb3d6aa62294338f1328f0fb1c4
2016-11-21 14:27:58 +08:00
Jan de Mooij 2975885bae Bug 1283562 - Add mozilla::Result<V, E> for fallible return values. r=jwalden 2016-11-21 12:52:03 +01:00
Ting-Yu Lin d60ec2b4d6 Bug 1315624 - Delete operator&& and operator|| for CastableTypedEnumResult. r=froydnj
Defining these two overloading functions destroys short-circuit evaluation.

MozReview-Commit-ID: Ac7zPtAGOiE

--HG--
extra : rebase_source : 4b3906b5162c1214b9814166f7d0d7de9cb0a7f9
2016-11-07 15:00:16 +08:00
Gerald Squelart 06c4e95cd0 Bug 1316206 - Make RefPtr(decltype(nullptr)) MOZ_IMPLICIT - r=froydnj
Making this constructor non-explicit will permit automatic conversions from
'nullptr' into RefPtr types, which I think are not dangerous.

The one spot that this affects is in 'UserDataType nsBaseHashtable::Get(KeyType)',
which does a 'return 0;' into the UserDataType, which could be a bool, an int, a
RefPtr or other. I'm changing that into a C++11 "value initialization", which
falls back to "zero initialization" for PODs: 'return UserDataType{};'.

Also fixed the comment to clarify not-found return values, as Get(KeyType) was
not only used for pointers anyway.

MozReview-Commit-ID: F41VlvTNOZU

--HG--
extra : rebase_source : 71d5dacac75ca188e5c55d45f48a5fca76d953c6
2016-11-08 15:12:33 +11:00
Gerald Squelart f71d8c43ff Bug 1316206 - RefPtr construction/assignment from nullptr - r=froydnj
Added constructor and operator= from a nullptr, bypassing the incoming pointer
check.
Note that the constructor is 'explicit', because one particular use in
nsBaseHashtable is doing a 'return 0' into a templated type that is a RefPtr in
many cases. Making this new constructor explicit removes it from consideration
in this case.
As it's not strictly necessary to have it MOZ_IMPLICIT (but could still be
nice), I will tackle that in the patch after next.

Also changed all zeroes into nullptr when relevant in RefPtr.h (other system-
wide affected files will be updated in following patch.)

MozReview-Commit-ID: Ds4CEv9hZWI

--HG--
extra : rebase_source : f4ec156b13ea3bdcf32b1a33d76ff9771ad6d1dc
2016-11-10 07:58:10 +11:00
Emanuel Hoogeveen 515f250ac5 Bug 1309573 - Part 1: Define the crash reason in MFBT to let everything use it. r=froydnj
--HG--
extra : rebase_source : 12eda091c0453e067a13a80261b814128d27c45c
2016-11-06 22:57:00 -05:00
Nathan Froyd d585884d50 Bug 1315352 - follow-up - placate the static analysis to re-open this CLOSED TREE; r=me 2016-11-07 19:26:11 -05:00
Nathan Froyd 9238cab1b1 Bug 1315352 - enable Range<T> -> Range<const T> conversion; r=Waldo
Since |T*| converts into |const T*|, if we want to rewrite code such as:

  void DoSomething(const T*, size_t);

  void DoSomethingElse(T* x, size_t len)
  {
    ...
    DoSomething(x, len);
  }

to use ranges:

  void DoSomething(Range<const T>);

  void DoSomethingElse(Range<T> x)
  {
    ...
    DoSomething(x);
  }

we need to ensure this conversion works.  gsl::span<T> already provides
something like this as well.
2016-11-07 19:30:34 -04:00
Nathan Froyd c8d4517ee9 Bug 1315004 - rename Range::start to Range::begin to match C++ conventions; r=botond
Among other things, this change means that you can use ranged-for syntax
with Range, which is more fitting and pleasant than the alternative.
2016-11-05 21:13:38 -04:00
Nick Fitzgerald a19333ea56 Bug 1324829 - Add the `mozilla::Result::andThen` method; r=froydnj 2016-12-21 13:05:56 -08:00
Nick Fitzgerald f40c749727 Bug 1324828 - Add the `mozilla::Result::map` method; r=froydnj 2016-12-21 13:05:56 -08:00
Bill McCloskey 4c8471eb15 Bug 1310547 - Add removeAndGetNext/Previous methods to LinkedList (r=froydnj) 2016-10-30 22:04:01 -07:00
Bill McCloskey c0d229e060 Bug 1310547 - Allow LinkedList to hold RefPtr elements (r=froydnj) 2016-10-30 22:04:00 -07:00
Sebastian Hengst bff4ebdec8 Backed out changeset c41a71b1c24e (bug 1310547) for failing splitText-normalize.html in reftests on Windows 7 VM debug. r=backout on a CLOSED TREE 2016-10-29 13:48:56 +02:00
Sebastian Hengst b063eb49cb Backed out changeset 721e3171510d (bug 1310547) 2016-10-29 13:45:28 +02:00
Sebastian Hengst d8f4badbd6 Backed out changeset b15d4e773bdd (bug 1310547) 2016-10-29 13:44:48 +02:00
Bill McCloskey 5074379555 Bug 1310547 - LinkedList compiler fixes 2016-10-28 21:27:17 -07:00
Bill McCloskey 5a6e5a85cf Bug 1310547 - Add removeAndGetNext/Previous methods to LinkedList (r=froydnj) 2016-10-28 20:11:03 -07:00
Bill McCloskey 89ca6e236f Bug 1310547 - Allow LinkedList to hold RefPtr elements (r=froydnj) 2016-10-28 20:10:37 -07:00
Tooru Fujisawa 57db30aa76 Bug 1311088 - Part 1: Add mozilla::SpecificNaNBits and JS::detail::CanonicalizedNaNBits. r=jwalden 2016-10-29 01:47:30 +09:00
Tooru Fujisawa 0e8929a00e Bug 1301864 - Remove constexpr from mozilla::IsNaN. r=jwalden 2016-10-29 01:47:30 +09:00
Johannes Schulte b7ccc22970 Bug 1312620 - Add IsPositiveZero function to mfbt and use it to replace MPhi by MNaNToZero iff c is +0.0. r=nbp, r=waldo
--HG--
extra : rebase_source : 7adefc3370c081e17b5e0b090a008e0de0507bb9
2016-10-26 17:47:42 +02:00
James Cheng 3bf8f58291 Bug 1309466 - Add Test for the init value by constructor. r=froydnj
MozReview-Commit-ID: 9BguTY6dlRD

--HG--
extra : rebase_source : 8aef83263e8a406f6a4bb54f7cac6368cb75d904
2016-10-19 18:12:11 +08:00
James Cheng 6178d3ca29 Bug 1309466 - Enable Array and EnumeratedArray to be brace-initialized with initial contents. r=froydnj
MozReview-Commit-ID: 9sD9Rg4qsy1

--HG--
extra : rebase_source : bef928bca14e6d1a0a207359acfa56ecd93d605b
2016-10-12 15:08:47 +08:00
Tom Tromey f36057ea28 Bug 553032 - use MOZ_FORMAT_PRINTF, not explicit attribute; r=froydnj
MozReview-Commit-ID: FgGin8L5oTp

--HG--
extra : rebase_source : 67f6d7ed8fc56745c66bd339013d1e9b753ec780
2016-10-12 10:03:53 -06:00
Tom Tromey 06530c20e7 Bug 553032 - document MOZ_FORMAT_PRINTF; r=froydnj
MozReview-Commit-ID: 4qX1nltLBxf

--HG--
extra : rebase_source : 5d82dbe8108fc5d9926cc0586a78dc753251f896
2016-10-13 13:08:39 -06:00
Tom Tromey 4fa10fe6d8 Bug 553032 - move MOZ_FORMAT_PRINTF to mfbt; r=froydnj
MozReview-Commit-ID: 2aC4ZUOsGPK

--HG--
extra : rebase_source : ec936e8447624653980d9168587223694a9e10c7
2016-10-11 12:42:58 -06:00
Ting-Yu Lin 89db11bf5e Bug 1311277 Part 4 - Convert NodeKind to be an enum class. r=froydnj
MozReview-Commit-ID: 2APdWxa8rZ6

--HG--
extra : rebase_source : f4fa846c6bd063afd2d1868169b676ec12f1f19a
2016-10-20 17:01:11 +08:00
Ting-Yu Lin 96fcd3875f Bug 1311277 Part 2 - Add move assignment for LinkedListElement and LinkedList. r=froydnj
MozReview-Commit-ID: 7NjbxamX87U

--HG--
extra : rebase_source : 578c72ee7eff740f7e7dcfd95f38f3ca8d1045a8
2016-10-19 13:30:51 +08:00
Ting-Yu Lin dcc36e9067 Bug 1311277 Part 1 - Convert |other| argument to Mozilla coding style. r=froydnj
MozReview-Commit-ID: JcEloAe5dlA

--HG--
extra : rebase_source : 8bc712551d1a0b8f4c1aec1dafc9e4fb2c5861e0
2016-10-19 13:24:23 +08:00
Nathan Froyd d1108c1e52 Bug 1311068 - remove InitializerList.h; r=botond
We needed this polyfill for <initializer_list> when some of our C++
standard libraries did not support said header.  They all do now, so the
polyfill is redundant.
2016-10-19 00:33:14 -04:00
Tooru Fujisawa 19d7f7bb03 Bug 1290337 - Part 22: Add moz_non_param annotation. r=ehsan,jwalden 2016-09-11 18:23:11 +09:00
Jeff Walden de8974994d Bug 1299284 - Remove js::IsPowerOfTwo in favor of mozilla::IsPowerOfTwo. r=sfink
--HG--
extra : rebase_source : c9d695c25c9e53d7b86d9718611718af9fea8598
2016-07-21 00:36:38 -07:00
Sebastian Hengst cdcc9e20da Bug 1304829 - rename RELEASE_BUILD to RELEASE_OR_BETA: main part. r=ted,Mossop
MozReview-Commit-ID: 1lCt0xTMV5O
2016-10-08 11:14:49 +02:00
Kan-Ru Chen 3e934c8f5c Bug 1305791 - Clear result.mSegments if MoveFallible failed. r=billm
MozReview-Commit-ID: 8UaGt1OEfhh

--HG--
extra : rebase_source : c084812d2e4d8633d049638dcd55b0b97db2c603
2016-09-30 17:37:44 +08:00
Andi-Bogdan Postelnicu 8240adec88 Bug 1230311 - add annotation to enforce that if a method is overridden also base method is called. r=nfroyd
MozReview-Commit-ID: AQ3Kx2qidU0
2016-10-04 17:00:17 +03:00
Terrence Cole 76b800594e Backed out changeset d85334f696eb (bug 1285057) for implicitly depending on clang 3.8.
--HG--
extra : rebase_source : 472f9411c9d528d63d523c99f4842a1216bdd560
2016-09-23 15:59:55 -07:00
Terrence Cole b605dece0c Bug 1285057 - Blacklist UBSan detection of the GC's generic interfaces; r=sfink
--HG--
extra : rebase_source : f5367a8685ec462edb7e30e5ed3d274b4a9bcd0f
2016-07-07 08:59:36 -07:00
Xidorn Quan 7d4ca9c88b Bug 1303302 - Add IsDestructible trait in TypeTraits and use it for refcounted type static check. r=froydnj
MozReview-Commit-ID: G3YFhrJngq0

--HG--
extra : rebase_source : da0aa325eb7772c1a156440ed46be9d0d429c91e
2016-09-16 17:23:55 +10:00
Tom Schuster 6fcfa1f00e Bug 1302233 - Introduce VsprintfLiteral to mfbt. r=froydnj 2016-09-14 20:48:45 +02:00
Mats Palmgren 28d8553d1d Bug 1299379 - Add MOZ_CONCAT for preprocessor token pasting. r=waldo 2016-09-11 15:49:50 +02:00
Wes Kocher 5cbc382303 Merge inbound to m-c a=merge 2016-09-07 17:54:24 -07:00
Michael Layzell 36e08437d0 Bug 1018486 - Part 8: Various other changes, r=smaug
MozReview-Commit-ID: B0dsomkWgEk
2016-09-07 10:50:45 -04:00
Jeremy Chen 722ad026a3 Bug 1297306 - part4:rename IsEnumFittingWithin with EnumTypeFitsWithin and move it to mfbt/EnumTypeTraits.h. r=froydnj
With this change, we could share this EnumTypeTraits between files easily.

MozReview-Commit-ID: 9Q2augati7l

--HG--
extra : rebase_source : b7d9fc95d9d7722ba3eb99ec9798a64ebdbeb484
2016-09-07 10:20:16 +08:00
Kan-Ru Chen 99748028a6 Bug 1051567 - Make sure we resend file descriptors for the first chunk of a message. r=billm
Check if the buffers iterator was never consumed. This is a regression
introduced when converting ipc to use BufferList in bug 1262671.

MozReview-Commit-ID: LWAoVlI5CKJ

--HG--
extra : rebase_source : c4f16f4f90f56153c10cf1d9113c4c55748595f0
2016-08-30 18:26:59 +08:00
Andi-Bogdan Postelnicu 5a1fd6c4d4 Bug 525063 - add attribute to mark functions that initialize member variables for their parent class, in order to be scanned by clang-plugin static analysis. r=froydnj
MozReview-Commit-ID: 5yTnTUVLpSC
2016-08-30 10:07:03 +03:00
Michelangelo De Simone 0b2d2c0e55 Bug 1120059 - Remove unnecessary MOZ_EXPLICIT_CONVERSION macros. r=jwalden
MozReview-Commit-ID: 7CX1VnBRDpk

--HG--
extra : rebase_source : 36be7e6c91d2767c5a610a2806f89efa69ff1c74
2016-07-13 15:07:52 -07:00
Honza Bambas e4eacf065d Bug 956338 - Add checks to WeakPtr/nsWeakReference and related classes to assert single-thread usage. r=nfroyd
--HG--
extra : rebase_source : 140fa149eb94f027e9319a44be0bbee34648222a
2016-08-01 13:16:16 +02:00
Ryan VanderMeulen 1c0c6ec5d4 Merge m-c to inbound. a=merge 2016-08-29 12:56:19 -04:00
Kan-Ru Chen c49f09db99 Bug 1297981 - Delete BufferList::FlattenBytes and Pickle::FlattenBytes. r=billm
MozReview-Commit-ID: G3a4DN4Lovi

--HG--
extra : rebase_source : 17818efb7578117b708636d06e6a2f5d14532c94
2016-08-25 17:15:38 +08:00
Jeff Walden 34e7d5b132 Bug 1296760 - Allow Some(nullptr) and Some(Derived*) to convert to Maybe<Base*>. r=froydnj
--HG--
extra : rebase_source : 478e825f476a671e07a94f483b88cbc2d4ae8d13
2016-08-24 11:12:48 -07:00
Kan-Ru Chen b6d880aca1 Bug 1297276 - Rename mfbt/unused.h to mfbt/Unused.h for consistency. r=froydnj
The patch is generated from following command:

  rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,

MozReview-Commit-ID: AtLcWApZfES


--HG--
rename : mfbt/unused.h => mfbt/Unused.h
2016-08-24 14:47:04 +08:00
Kan-Ru Chen 506dfe6ea3 Bug 1264642 - Part 4. Use BufferList to replace raw buffers in StructuredClone. r=baku r=billm r=jorendorff
In JS StructuredClone BufferList<SystemAllocPolicy> is typedef'd to
JSStructuredCloneData and use everywhere in gecko that stores structured
clone data.

This patch changed some raw pointers to UniquePtr<JSStructuredCloneData>
and some to stack allocated JSStructuredCloneData for better life time
management. Some parameters or methods are deleted because of changing
to the new data structure.

MessagePortMessage now has the exactly same structure with
ClonedMessageData. Maybe in the future they can be consolidated.

MozReview-Commit-ID: 1IY9p5eKLgv
2016-08-23 00:40:46 +08:00
Kan-Ru Chen 3dcef6a932 Bug 1264642 - Part 3. Add BufferList::MoveFallible. r=billm
It works like a move constructor but it's fallible. It can also move
data to different but compatible AllocPolicy.

MozReview-Commit-ID: LAbPWCwnrr6
2016-08-23 00:40:46 +08:00
Kan-Ru Chen 6f3e6b1234 Bug 1264642 - Part 2. Add BufferList::Extract and Pickle::ExtractBuffers. r=billm
These methods allow us to move some buffers out of a pickle with minimum
copying. It's useful when the IPC deserialized type uses BufferList to
store data and we want to take the buffers from IPC directly.

Borrowing is not suitable to use for IPC to hand out data because we
often want to store the data somewhere for processing after IPC has
released the underlying buffers.

MozReview-Commit-ID: F1K2ZMkACqq
2016-08-23 00:40:45 +08:00
Michael Layzell e1fc3b1773 Bug 1159244 - Add release mode bounds checking with custom annotations to nsTArray, r=froydnj
MozReview-Commit-ID: Ljx9PwBCyTT
2016-08-15 13:29:45 -04:00
Igor 175543fda8 Bug 1293384 - Part 2: Rename Snprintf.h header to Sprintf.h. r=froydnj 2016-08-14 23:43:21 -07:00
Igor a57972337d Bug 1293384 - Part 1: Rename snprintf_literal to SprintfLiteral. r=froydnj 2016-08-14 23:44:00 -07:00
Jeff Walden 0c5ac6c90f Bug 1294537 - Don't tag |void* p| in the don't-nullcheck placement operator new overload as MOZ_NONNULL, because that makes a double-checking assertion of non-nullness into a compiler warning. r=froydnj
--HG--
extra : rebase_source : b53a1c5dce924ea030f54bb41e13baf27cd3d823
2016-08-12 18:02:03 -07:00
Nathan Froyd 0a6a801dc2 Bug 1294537 - introduce a non-null-checking placement operator new; r=sunfish,nbp
The default placement operator new is defined to always require that its
result be null-checked.  A sufficiently smart compiler can remove this
check, but not all compilers are sufficiently smart.  Better to have a
custom placement operator new that will remove null checks in a way
defined by the standard.
2016-08-12 22:43:49 -04:00
Tom Schuster 42824df666 Bug 1197324 - add format-string checking attribute to snprintf_literal. r=froydnj 2016-08-03 14:37:31 +02:00
Benjamin Bouvier 23575fdec5 Bug 1248555: Introduce variants of SpecificNaN / BitwiseCast that preserve the signaling NaN bit; r=froydnj
MozReview-Commit-ID: 5A8p06nBqyI

--HG--
extra : rebase_source : 87ebcc9792d42c6b2e6164a639340da37b4b602c
extra : histedit_source : b4ab7c6b9f4bb7fe2cc88a3208d6fa8e6fefce08
2016-08-01 20:02:05 +02:00
Daniel Holbert 489e357178 Bug 1291423: Explicitly qualify the destructor call that we invoke in Maybe::reset. r=Waldo
MozReview-Commit-ID: 6vQouBSxnsZ
2016-08-02 21:19:08 -07:00
Chris Peterson 9fc9590608 Bug 1289990 - Remove VS2013 workaround for TestTuple.cpp crash. r=froydnj
--HG--
extra : rebase_source : c5138bb0ea6a77b04030074ecebd85ba0808afa3
2016-07-27 23:13:08 -07:00
Cameron McCormack fdb4542277 Bug 1290035 - Remove the explicit Type parameter to MakeEnumeratedRange. r=Waldo
MozReview-Commit-ID: BtFVn9pTQpU

--HG--
extra : rebase_source : be83c74953e2fbc7ace2ce49ceebb060da394c50
2016-07-28 17:48:50 +08:00
Andi-Bogdan Postelnicu 79a0735001 Bug 1283395 - add markup functions for static analysis builds. r=froydnj
MozReview-Commit-ID: 6dFygYzTYfN
2016-07-25 16:57:30 +03:00
Wes Kocher 1feda59958 Backed out changeset 9c839b1d1397 (bug 1283395) for static build bustage CLOSED TREE 2016-07-25 08:54:47 -07:00
Andi-Bogdan Postelnicu 440264fed8 Bug 1283395 - add markup functions for static analysis builds. r=froydnj
MozReview-Commit-ID: 6dFygYzTYfN
2016-07-25 17:43:14 +03:00
Nathan Froyd 6dad001d7f Bug 1238661 - fix mozilla::SignalTrampoline to work properly with clang; r=darchons
mozilla::SignalTrampoline is designed to work around a bug in older ARM
kernels; it constructs a trampoline function with a NOP slide and then
calls a specified function.  This feat is accomplished using inline
assembly and naked functions, which is a GCC extension where you get to
write the entire body of your function using GCC inline assembly.

Unfortunately, the particular implementation that it uses requires the
specified function's address to be loaded into a register.  GCC permits
this and we use input arguments to the assembly statement to ensure that
GCC knows it shouldn't clobber the incoming argument registers when
trying to load the function's address.

clang, however, complains about the use of input parameters in naked
functions.  So we need to find something that will work on both GCC and
clang.

The trick is to realize that we're a) tail-calling the specified
function and b) we don't have to worry about calling a fully-general
function.  We just have to worry about calling a function inside libxul,
and we can therefore "assume" that the offset between the branch and the
called function fits into the immediate field of a Thumb (or ARM) branch
instruction.  (This assumption is not strictly true; the branch range is
+/-16MB or so and libxul is actually quite a bit bigger than that.  But
it works in practice, and the linker will insert branch stubs if
necessary to make things work out OK.)

The upshot is that we can use a "b" instruction instead of a "bx"
instruction, and this makes clang much happier.  As a small bonus, the
stub gets ever-so-much-more efficient, which is probably the
least-significant micro-optimization ever.
2016-07-25 18:16:06 -04:00
Chris Peterson b0efbe0ef8 Bug 1288603 - Remove NumericLimits.h because all platforms have numeric_limits<char16_t>. r=froydnj 2016-07-22 22:05:45 -07:00