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

1198 Коммитов

Автор SHA1 Сообщение Дата
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
Carsten "Tomcat" Book 336105a0de merge mozilla-inbound to mozilla-central a=merge 2016-07-22 11:58:02 +02:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Chris Peterson d634a99cad Bug 1277106 - Part 4: Remove MOZ_UTF16() macro. r=Waldo 2016-07-19 21:07:53 -07:00
Chris Peterson 8949f73d27 Bug 1277106 - Part 1: Use VS2015's real char16_t instead of aliasing wchar_t. r=Waldo
and remove MOZ_CHAR16_IS_NOT_WCHAR #ifdefs.
2016-07-20 22:01:43 -07:00
Carsten "Tomcat" Book 718ce69fb7 Backed out changeset c8e5a0703821 (bug 1283395) for bustage on a CLOSED TREE 2016-07-21 08:13:06 +02:00
Andi-Bogdan Postelnicu d2d46ad585 Bug 1283395 - add markup functions for static analysis builds. r=froydnj
MozReview-Commit-ID: 1F5GGpQtq4x
2016-07-20 15:45:34 +03:00
Wes Kocher 3bba9b339e Backed out 5 changesets (bug 1287623) for static build bustage CLOSED TREE
Backed out changeset a48daec87ec9 (bug 1287623)
Backed out changeset 248153344e15 (bug 1287623)
Backed out changeset 8aa409c9b1ce (bug 1287623)
Backed out changeset 602d4d88e806 (bug 1287623)
Backed out changeset 114da8bdc0b0 (bug 1287623)
2016-07-20 15:40:33 -07:00
Andrew McCreight 155e619376 Bug 1287623, part 3 - Add more methods involving StaticRefPtr. r=froydnj
This patch adds a number of standard conversions to and from RefPtr<>
and already_AddRefed<>.
2016-07-20 15:19:00 -07:00
Andrew McCreight a5a3cca3f9 Bug 1287623, part 3 - Add more methods involving StaticRefPtr. r=froydnj
This patch adds a number of standard conversions to and from RefPtr<>
and already_AddRefed<>.
2016-07-21 09:54:17 -07:00
Jeff Walden efea1b6545 Bug 1287243 - Optimize the type used to store Variant's tag. r=fitzgen
--HG--
extra : rebase_source : c7c6fd63ea50330958ef794dc28cc8890ef59bbe
2016-07-16 02:31:45 -07:00
Terrence Cole 1fe18b25cf Bug 1232686 - Use decltype to infer Variant::match return type; r=fitzgen
--HG--
extra : rebase_source : 38f280cc3014b2285a79e377f1fa8edf4c5f4661
2015-12-15 07:45:22 -08:00
Boris Chiou c329f132b7 Bug 1276573 - Add a new constructor for Range<T>. r=Waldo
These new constructor accepts two RangedPtr<T> arguments.

MozReview-Commit-ID: 8a3bYserLMr

--HG--
extra : rebase_source : 216de17b7a51783fe48d604b432d4dc7df6ad6eb
2016-05-30 13:58:13 +08:00
Chris Peterson 43c2748f66 Bug 1277775 - Replace MOZ_CONSTEXPR{_VAR,_TMPL} with constexpr. r=froydnj 2016-07-08 14:39:53 -07:00
Chris Peterson 2b3b60f7b1 Bug 1277155 - Part 1: Remove snprintf() polyfills for VS2013 in Sprintf.h and #defines. r=froydnj r=mhowell 2016-06-27 20:45:03 -07:00
Chris Pearce ab7252caa2 Bug 1267918 - Add do_AddRef(const RefPtr<T>& aObj). r=froydnj
This means we can return already_AddRefed<T> for any RefPtr<T>s
being held as instance variables easier.

MozReview-Commit-ID: HFHdkF8EUsK

--HG--
extra : rebase_source : df650d39c010386afcb8cb2dd48292c26fbc6501
2016-06-30 10:06:10 +12:00
Jeff Walden e20f0f4551 Bug 1282795 - Silence warnings when MOZ_ALWAYS_{TRUE,FALSE} are passed expressions with embedded side effects, that would ordinarily trigger side effects but don't inside certain unevaluated contexts within MOZ_ASSERT, which then triggers compiler warnings with new-enough clang. You are not expected to understand this. r=froydnj
--HG--
extra : rebase_source : ffe6d35af74c50b04dbddc9cc3965292875c64a0
2016-06-28 17:12:14 +01:00
Andi-Bogdan Postelnicu 5e3fc1519f Bug 525063 - renamed MOZ_INITIALIZED_OUTSIDE_CONSTRUCTOR -> MOZ_INIT_OUTSIDE_CTOR. r=nfroyd
MozReview-Commit-ID: GPQY8b2OM2V
2016-06-28 16:30:49 +03:00
Seth Fowler a2712d4b0e Bug 1255632 - Make Maybe::map and Maybe::apply support lambdas. r=waldo,njn 2016-06-22 16:32:40 -07:00
Carsten "Tomcat" Book c46c20b362 Backed out changeset 7b03f23fdde5 (bug 1255632) for bustage on a CLOSED TREE 2016-06-22 08:48:25 +02:00
Seth Fowler 358b410aaa Bug 1255632 - Make Maybe::map and Maybe::apply support lambdas. r=waldo,njn 2016-06-21 22:15:27 -07:00
Luke Wagner fa9fafb015 Bug 1277896 - add Vector::initLengthUninitialized (r=waldo)
MozReview-Commit-ID: He6Kzr0giLU
2016-06-10 13:28:04 -05:00
Luke Wagner 6b6f143161 Bug 1278391 - add move constructor to EnumeratedArray (r=njn)
MozReview-Commit-ID: AQjH3xx9TSq

--HG--
extra : rebase_source : 599dc2bf76fa2921de6bf3b41c7d384db70a7ff9
2016-06-09 08:42:16 -05:00
Andi-Bogdan Postelnicu 12bac0f757 Bug 525063 - add attribute to mark member variables that should be skipped by clang plugin initialization checker. r=nfroyd
MozReview-Commit-ID: 4V1YcK2thiF
2016-06-09 09:32:11 +03:00
Andi-Bogdan Postelnicu c735dfa442 Bug 1278201 - prevent writing |mRefCnt| after it's freed. r=Ms2ger
MozReview-Commit-ID: G7fZzrGWHmW

--HG--
extra : rebase_source : 6f311948a8d2222358aec860f2c6d6223862e814
2016-06-06 17:23:10 +03:00
L. David Baron 97c2e11d8c Bug 1273048 - Add MOZ_GCC_VERSION_AT_MOST macro. r=froydnj
MozReview-Commit-ID: 4VjAra5B6GM

--HG--
extra : transplant_source : %D3%C7C%05%7EB%24%90q%D3%22%C8%F5%8F%C7%C3%B4%00%A6%E2
2016-06-03 20:08:41 -07:00
Boris Chiou acc84881a2 Bug 1277740 - Add const to RangedPtr<T>::operator+ and operator-. r=Waldo
MozReview-Commit-ID: FlHmq5eh5ph

--HG--
extra : rebase_source : 7e8939f0a9531426fa8fa742351d47f1d2351e72
2016-06-03 12:16:33 +08:00
Boris Chiou 4b68d2e1e4 Bug 1276550 - Support operator-> for RangedPtr. r=Waldo
MozReview-Commit-ID: EiOfo7ly34P

--HG--
extra : rebase_source : 6acbd9b3b6681f5c777e779713a21e8f808b89bf
2016-05-30 11:55:57 +08:00
Luke Wagner e574e0eda0 Bug 1277377 - prevent unsafe C-style cast in Vector (r=waldo)
MozReview-Commit-ID: L0bTDSBHOeY
2016-06-02 14:38:02 -05:00
Nicholas Nethercote b3d842431f Bug 1272203 (part 1) - Add mozilla::NotNull to MFBT. r=froydnj.
This patch implements mozilla::NotNull, which is similar but not identicial to
gsl::not_null.

The current draft(?) implementation of gsl::not_null is at
https://github.com/Microsoft/GSL/blob/master/include/gsl.h.

The main difference is that not_null allows implicit conversion from T to
not_null<T>. In contrast, NotNull only allows explicit conversion from T to
NotNull<T> via WrapNotNull().

The rationale for this is that when converting from a less-constrained type to
a more constrained type, implicit conversion is undesirable. For example, if I
changed a function f from this:

  f(int* aPtr);

to this:

  f(gsl::not_null<int*> aPtr);

no call sites would have to be modified. But if I changed it to this:

  f(mozilla::NotNull<int*> aPtr);

call sites *would* need to be modified. This is a good thing! It forces the
author to audit the call sites for non-nullness, and encourages them to
back-propagate NotNull throughout the code.

The other difference between not_null and NotNull is that not_null disables
pointer arithmetic, which means it cannot be used with array pointers. I have
not implemented this restriction for NotNull because it seems arbitrary and
unnecessary.
2016-05-12 14:21:16 +10:00
Chris Peterson 11ef78ae89 Bug 1275016 - Rename Endian.h to EndianUtils.h to avoid #include confusion with Android's endian.h stdlib header. r=froydnj
--HG--
rename : mfbt/Endian.h => mfbt/EndianUtils.h
2016-05-22 13:31:11 -07:00
Bill McCloskey 308608ab39 Bug 1262671 - Introduce MFBT BufferList class (r=froydnj) 2016-05-27 09:57:40 -07:00
Jan de Mooij eb2ea5c544 Bug 1269319 - Make AlignedStorage/AlignedStorage2 non-copyable to fix strict aliasing issues. r=Waldo 2016-05-19 20:57:36 +02:00
Michael Layzell 09a0151088 Bug 1209227 - Part 2: Mark mfbt::Variant as MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS, r=froydnj 2016-05-19 09:34:01 -04:00
Chris Peterson 353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Benjamin Bouvier 88fbb75f4c Bug 1271972: wasm: Implement i64.ctz, i64.clz, i64.popcount; r=sunfish
MozReview-Commit-ID: 2XXloMWmbjV

--HG--
extra : rebase_source : a332d6b5c3e0cfe3d5018cdc53e4c20b80b6a52a
extra : histedit_source : d413c95a2d1bc56f8d6f0deacecf37190a612397
2016-05-11 19:00:53 +02:00
James Cheng 4d3ad00b0e Bug 1269968 - Remove unnecessary deduction on RefPtr.h. r=froydnj
MozReview-Commit-ID: HoLyJD6oh

--HG--
extra : rebase_source : ac10cf1b3fae96ae91e7b5dd9b5a54797cec6e6d
2016-05-03 20:45:00 +02:00
Luke Wagner df166c688f Bug 1271022 - add Vector::podResizeToFit (r=njn)
MozReview-Commit-ID: 9HTY6O9GY4U

--HG--
extra : rebase_source : 55c226d23bd6dbb7b3bb21b356e64ae7499d3f0a
2016-05-09 08:59:10 -05:00
Nicholas Nethercote d8dc169af0 Bug 1268754 - Tweak some MFBT return values. r=Ms2ger.
This patch:

- Adds MOZ_MUST_USE to AllocPolicy::checkSimulatedOOM().

- Adds MOZ_MUST_USE to LZ4::decompress() (both variants) and fixes their
  comments.

- Changes the return type of SplayTree::insert() from bool to void, because it
  always returns true and its callers don't check the return value.

- Changes the return type of SplayTree::finishInsertion() from T* to void,
  because it makes things clearer -- it was just returning the aNew argument.

- Adds MOZ_MUST_USE to a Vector::growTo() (both variants).

--HG--
extra : rebase_source : 1547cdeb9ee71d0ecec608ab474ab5e75bfc4b42
2016-04-29 13:14:34 +10:00
Benoit Girard 6b1ce5f87f Bug 1268246 - Add a simple Poison class lifetime checker. r=froydnj
MozReview-Commit-ID: HpUjIaLPV7u

--HG--
extra : rebase_source : e5586cbb9d71005181671f362583a5b3b9006a4d
2016-04-29 13:54:54 -04:00
Nicholas Nethercote 2511b2c327 Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj.
It's an annotation that is used a lot, and should be used even more, so a
shorter name is better.

MozReview-Commit-ID: 1VS4Dney4WX

--HG--
extra : rebase_source : b26919c1b0fcb32e5339adeef5be5becae6032cf
2016-04-27 14:16:50 +10:00
Nicholas Nethercote a5c843fe5f Bug 1267550 (part 1) - Rename MOZ_MUST_USE as MOZ_MUST_USE_TYPE. r=ehsan.
This will allow MOZ_MUST_USE to be used for a different and more common case.

MozReview-Commit-ID: 4dQsdWjJfc6

--HG--
extra : rebase_source : 390ab56ef83d71eb6d28759a0195a79a78b153bd
2016-04-27 08:22:10 +10:00
Jon Coppeard b0359cb30b Bug 1266404 - Allow construction of an EnumSet<T> using an initializer list r=Waldo 2016-04-28 14:25:05 +01:00
Jon Coppeard 7dd2771dd7 Bug 1266402 - Add iteration to EnumSet<T> so that it can be used in range-based for loops r=Waldo 2016-04-28 14:25:05 +01:00
Dan Gohman 592be23acb Bug 1265892 - Change Vector to use Impl::new_ consistently. r=Waldo 2016-04-26 16:26:17 -07:00
Jon Coppeard 99cbfbd0dc Bug 1259021 - Add Vector::extractRawBuffer method that doesn't copy the buffer r=Waldo 2016-04-25 13:41:25 +01:00
Jon Coppeard d5b6a661f0 Bug 1259021 - Rename Vector::extractRawBuffer to extractOrCopyRawBuffer r=Waldo 2016-04-25 13:41:25 +01:00
Chris Peterson 1999c10d91 Bug 1266294 - Remove unnecessary compiler version checks for gcc <= 4.8.0 in mfbt. r=froydnj 2016-04-17 17:08:10 -07:00
Ehsan Akhgari 575dbe7dfd Bug 1264827 - Part 3: Add the MOZ_NEEDS_MEMMOVABLE_MEMBERS annotation to MFBT; r=froydnj 2016-04-18 15:43:48 -04:00
Carsten "Tomcat" Book 558930f4e9 Backed out changeset e673dbc9848f (bug 1232686) for breaking VS2013 Builds 2016-04-16 10:57:53 +02:00
Terrence Cole 2177cca5cd Bug 1232686 - Use decltype to infer Variant::match return type; r=fitzgen 2015-12-15 07:45:22 -08:00
Jan de Mooij 67e655e4bf Bug 1261361 - Make Vector::infallibleGrowByUninitialized check mReserved instead of mCapacity. r=Waldo
--HG--
extra : rebase_source : 2b6cdfae61946505b83748c016ef0b112ecf4780
2016-04-14 17:32:48 +02:00
Ralph Giles 8ed91454ea Bug 1262663 - Clean up UniquePtr return documentation. r=Waldo
The prohibition against returning a UniquePtr was based on
bugs in older compilers which required an explicit Move()
to properly transfer ownership. This is no longer the case
since we now have code returning this type directly.

--HG--
extra : rebase_source : 6190b3f14b650d448f18f7611a22576701657795
2016-04-11 14:36:29 -07:00
Lee Salzman c9a80c9abd Bug 1263342 - don't use REFCOUNTED_VIRTUAL_TYPENAME for mfbt FunctionImplBase. r=froydnj 2016-04-08 23:14:59 -04:00
Lee Salzman f1057b0380 Bug 1262577 - allow comparing mozilla::function with nullptr. r=froydnj 2016-04-06 15:18:01 -04:00
Terrence Cole 0ef3ab81a0 Bug 1232418 - Allow mozilla::Tuple to support equality comparison; r=Waldo
--HG--
extra : rebase_source : d57231f1c4a4c58715d2d552dd2e02257a73891e
2015-12-14 12:01:17 -08:00
Timothy Nikkel 6aeb6d5d05 Bug 1260247. In chaos mode randomly decide to start a new image load even if the image is in the image cache when allowed by spec. r=seth
If the image load is from the same document that cached the image we are required to use the cached version. Otherwise we should be free to ignore the cached version.
2016-04-02 13:53:12 -05:00
Bobby Holley 5790b832fa Bug 1261452 - do_AddRef shouldn't require an rvalue-reference. r=froydnj 2016-04-01 19:14:42 -07:00
David Keeler 9825c57bc3 bug 1239166 - platform work to support Microsoft Family Safety functionality r=froydnj,mgoodwin,mhowell,rbarnes,vladan
MozReview-Commit-ID: GhpJqJB97r9

--HG--
extra : rebase_source : e943c1e4d0f008ffd6b6bb4bb63e1daf27ae2c96
2016-01-12 15:39:43 -08:00
Jeff Walden 1dd8dbc3f7 Bug 1246061. r=jandem, r=bz, r=luke, r=froydnj
--HG--
extra : rebase_source : 5b314d4c4c6e0b553290884be7338f8e79c22f71
2016-03-09 00:37:20 -08:00
Markus Stange 04177e1aa2 Bug 1209100 - Back out bug 1165185 on inbound.
MozReview-Commit-ID: JqohyXNvjiU

--HG--
extra : rebase_source : c2165d279a6ca57a3439ebbfc081961369a42124
2016-03-21 16:16:52 -04:00
Mike Hommey 3fe18eae3b Bug 1175546 - Update GCC to 4.8.5 and bump minimum GCC version required to build. r=froydnj 2016-03-12 09:03:37 +09:00
Benoit Girard 52f227c58b Bug 1253678 - Rename mozilla::Function to mozilla::function. r=froydnj
MozReview-Commit-ID: 60RPmEsYDN2

--HG--
extra : rebase_source : 9d0bebc7362af2778d123425c56ac20553d9303b
2016-03-11 16:49:13 -05:00
Ehsan Akhgari 30ce323e87 Bug 1255857 - Allow mozilla::UniquePtr's deleter template argument to customize the pointer type; r=froydnj 2016-03-11 15:35:43 -05:00
Nick Fitzgerald 3508cf5f6a Bug 1254565 - Allow passing matchers as rvalues to Variant::match. r=froydnj
--HG--
extra : rebase_source : 9863e7cde9ff918af22de94ca7ec29988c154bbd
2016-03-10 13:35:00 -05:00
Jonathan Watt 115b647d6c Bug 1253094, part 11 - Make DebugOnly a MOZ_STACK_CLASS. r=Waldo
MozReview-Commit-ID: I09tdRotoJq

--HG--
extra : rebase_source : d3a895ca6138d4e8a4ed87109434db922b9cac53
2016-02-26 15:52:08 +00:00
Nathan Froyd d75c1bad6a Bug 1170045 - part 1 - add bulk pop support to SegmentedVector; r=erahm
Writing PopLastN in this way is probably a bit of a micro-optimization,
but at least it comes with tests and some comments for verifying the
goodness of the code.
2016-03-04 12:02:24 -05:00
Nathan Froyd 10eb1a5af3 Bug 1170045 - part 0 - modify TestSegmentedVectors to use explicitly-updated counts; r=erahm
The scheme in TestSegmentedVectors to use manually-annotated points and
magic numbers corresponding to those annotations works OK for small
numbers of operations.  But for testing bulk push and pop, we're going
to be doing many more operations, so let's move to recording explicitly
in code the operations we expect to see, and checking those instead.
2016-03-04 12:00:33 -05:00
Nathan Froyd 550f775a8d Bug 1252902 - remove ScopedFreePtr; r=Waldo
We have UniqueFreePtr as a replacement, which at least uses
more-standard machinery to do its job.
2016-03-02 11:44:27 -05:00
Nathan Froyd 76173ee85d Bug 1251723 - remove ScopedDeletePtr; r=Waldo
UniquePtr is more standard than ScopedDeletePtr; using standard
constructs whenever possible is preferable.
2016-02-26 15:08:03 -05:00
Jonathan Watt 8429c38aa7 Bug 1248843 - Make it clearer that DebugOnly uses up space even in optimized, non-DEBUG builds. r=Waldo
--HG--
extra : rebase_source : 6de3e55b8a7c4272bec3b5b8b8eb5da7ad78e9cf
2016-02-19 12:57:42 +00:00
Nathan Froyd 556bde5629 Bug 1252195 - part 1 - implement UniqueFreePtr; r=Waldo
Just like UniquePtr<T>, except that we're going to delete the allocated
memory with |free()|.
2016-02-29 10:29:13 -05:00
Bobby Holley 205b124ab5 Bug 1251496 - Introduce a servo-side data structure to represent the style set. r=heycam 2016-02-28 00:25:33 -08:00
Eric Rahm c47a83ce36 Bug 1251769 - Remove remaining references to MOZILLA_XPCOMRT_API from mfbt. r=froydnj 2016-02-27 11:12:07 -08:00
Seth Fowler 57081a13af Bug 1250666 - Forward Variant's move constructor argument correctly to the underlying variant type. r=waldo 2016-02-26 21:01:49 -08:00
Seth Fowler 27ae3900e1 Bug 1246841 - Allow construction of Variant values using type inference. r=waldo
--HG--
extra : rebase_source : 7d596149e6d3c630d62aab0d65d5a826af731bf5
2016-02-25 14:34:12 -08:00
Seth Fowler 4052eca615 Bug 1246838 - Handle const qualifiers and references better in Variant. r=waldo
--HG--
extra : rebase_source : 4dc9df6cb5ea9b994c5074b505471101746def83
2016-02-25 14:34:12 -08:00
Nicholas Nethercote 2e0403bcfe Bug 1247835 (part 0) - Minor comment and style tweaks in BinarySearch.h. r=luke.
--HG--
extra : rebase_source : 1e778ebbc7e297dcc2a65dbd522dd1f8c99bd790
2016-02-23 15:41:39 +11:00
Ehsan Akhgari 9f38f2d1e0 Bug 1250196 - Part 2: Rename UniquePtr::getDeleter() to get_deleter() in order to make it compatible with std::unique_ptr; r=froydnj 2016-02-22 15:51:59 -05:00
Xidorn Quan d2510ef7a5 Bug 1248851 part 4 - Mark UniquePtr::release() MOZ_WARN_UNUSED_RESULT. r=Waldo
MozReview-Commit-ID: FH7t5gZ0nVG

--HG--
extra : source : d2e0a96cfa48756f0e101a089999142a703fa24c
2016-02-20 11:06:25 +08:00
Sebastian Hengst f41859330d Backed out changeset 5f729d20fd00 (bug 1249728) for bustage. r=bustage on a CLOSED TREE 2016-02-19 22:18:49 +01:00