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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Nicolas B. Pierron
dccaffb213
Bug 1325073 - Rename mozilla::MakeGenericErrorResult to mozilla::Err. r=Waldo
2017-03-08 13:33:07 +00: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
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
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
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
Jonathan Watt
33a6ca0109
Bug 1335780, part 2 - Tests for Maybe<const Type>. r=froydnj
2017-01-03 08:53:05 +00: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Nick Fitzgerald
6f93fd8916
Bug 1247412 - Add a `reverse` method to `mozilla::Vector`; r=Waldo
2016-02-11 08:33:00 +01:00
Ehsan Akhgari
0afa44b210
Bug 1232765 - Remove the workaround added in bug 1022050
2016-02-07 14:50:50 -05:00
Thomas Zimmermann
ad6d42d817
Bug 1194721: Add |Saturate| template for saturation arithmetics, r=nfroyd
...
|Saturate<T>| implements saturation arithmetics for arbitrary basic
types. Operations on its value won't over- or underflow the type's
range.
2016-02-04 12:35:12 +01:00
Carsten "Tomcat" Book
4ff72292de
Backed out changeset 8d6c228ef008 (bug 1194721) on developers request
2016-02-03 16:25:00 +01:00
Thomas Zimmermann
3d9f64bb3e
Bug 1194721: Add |Saturate| template for saturation arithmetics, r=nfroyd
...
|Saturate<T>| implements saturation arithmetics for arbitrary basic
types. Operations on its value won't over- or underflow the type's
range.
2016-02-03 15:16:00 +01:00
Xidorn Quan
9668b6f572
Bug 1241901 part 3 - Add IsMemberPointer and IsScalar type traits. r=froydnj
...
--HG--
extra : source : 02269acc78bfde8d3171bf6023a5dda4cac9df3c
2016-01-30 10:33:41 +11:00
Jeff Muizelaar
b29099ae6d
Bug 1228641. Add a polyfill of std::initializer_list. r=froydnj
2016-01-06 22:06:35 -05:00
Jan de Mooij
36e21ef4d9
Bug 1231224 part 10 - Make various Vector calls check for OOM. r=terrence
...
--HG--
extra : rebase_source : fae86eb928fc510c3d5c7a895675cf218fc15b3a
2016-01-06 21:06:25 +01:00
Botond Ballo
1a83097cba
Bug 1221680
- Avoid hard errors when testing convertibility using the IsConvertible type trait. r=froydnj
...
--HG--
extra : source : ea11bb67c3510671a501724d17d9872c3455891d
2015-11-06 17:47:36 -05:00
Bill McCloskey
47b5adaa34
Bug 1221368 - Change MakeTuple to decay the types of its arguments (r=froydnj)
2015-11-09 10:21:11 -08:00
Jeff Walden
fe5445d030
Bug 1220693 - Make mozilla::Atomic<enum class> work even on compilers that don't have <atomic>. r=froydnj
...
--HG--
extra : rebase_source : 2eb167a1b86a1a93527761a9541ea30ad213785a
2015-11-03 13:03:26 -08:00
Birunthan Mohanathas
9985829ecc
Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj
2015-11-02 07:53:26 +02:00
Nathan Froyd
01583602a9
Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
...
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout. The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.
CLOSED TREE makes big refactorings like this a piece of cake.
# The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
xargs perl -p -i -e '
s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
s/nsRefPtr ?</RefPtr</g; # handle declarations and variables
'
# Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h
# Handle nsRefPtr.h itself, a couple places that define constructors
# from nsRefPtr, and code generators specially. We do this here, rather
# than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
# things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
mfbt/nsRefPtr.h \
xpcom/glue/nsCOMPtr.h \
xpcom/base/OwningNonNull.h \
ipc/ipdl/ipdl/lower.py \
ipc/ipdl/ipdl/builtin.py \
dom/bindings/Codegen.py \
python/lldbutils/lldbutils/utils.py
# In our indiscriminate substitution above, we renamed
# nsRefPtrGetterAddRefs, the class behind getter_AddRefs. Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'
if [ -d .git ]; then
git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
583afa0965
Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
...
This commit was generated using the following script, executed at the
top level of a typical source code checkout.
# Don't modify select files in mfbt/ because it's not worth trying to
# tease out the dependencies currently.
#
# Don't modify anything in media/gmp-clearkey/0.1/ because those files
# use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
grep -v 'mfbt/RefPtr.h' | \
grep -v 'mfbt/nsRefPtr.h' | \
grep -v 'mfbt/RefCounted.h' | \
grep -v 'media/gmp-clearkey/0.1/' | \
xargs perl -p -i -e '
s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#; # handle strange #includes
'
# |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'
# RefPtr.h used |byRef| for dealing with COM-style outparams.
# nsRefPtr.h uses |getter_AddRefs|.
# Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Steve Fink
2fac3971ef
Bug 1212624 - Tests for LinkedList, r=Waldo
...
--HG--
extra : rebase_source : 39cb2bc90342da5d5fc1379f805b1dd701a108df
2015-10-07 12:36:00 -07:00
Steve Fink
833a3ce77b
Backed out 5 changesets (bug 1212624) for breaking stuff.
...
Backed out changeset cf5ffa45a4a2
Backed out changeset 0d7a968d2d64 (bug 1212624)
Backed out changeset 379edefa8e47 (bug 1212624)
Backed out changeset f73fca35daad (bug 1212624)
Backed out changeset 4f499d30a0e0 (bug 1212624)
2015-10-14 16:49:12 -07:00
Steve Fink
c860330eec
Bug 1212624 - Tests for LinkedList, r=Waldo
...
--HG--
extra : rebase_source : f44eac4762baa6cc47e5ea370fe19ea35aaf9c88
2015-10-07 12:36:00 -07:00
James Cheng
bf740b75f1
Bug 1212745 - Part 1 - Make mozilla::Function support pointer to member function. r=nfroyd
2015-10-11 19:53:00 +02:00
Jim Blandy
cd209ab0b5
Bug 1206357: Add mfbt/FastBernoulliTrial.h, implementing efficient random sampling. r=waldo
...
--HG--
extra : rebase_source : 63de57cd3fb3317c752f58fb7a0a71f050f198a3
2015-10-08 13:05:31 -07:00
Wes Kocher
0eeafe1fa4
Merge inbound to central, a=merge
2015-09-24 16:46:34 -07:00
Jared Wein
71808b231d
Bug 1205020 - Disable optimizations in TestTuple.cpp since it breaks the build on VS2013 Windows 10. r=froydnj
...
--HG--
extra : rebase_source : f209cc4dd8051562a4ef87313d0636f9dbee2132
2015-09-23 13:53:07 -04:00
Nathan Froyd
5761751aa3
Bug 1207245 - part 1 - move RefCounted<T> to its own file
...
Various bits depend on RefPtr.h to provide RefCounted<T> and RefPtr<T>.
It will be easier to manage an automatic conversion from RefPtr<T> to
nsRefPtr<T> if we split out the dependency on RefCounted<T> first.
2015-09-22 21:27:34 -04:00
Nathan Froyd
d3552d7e39
Bug 1207245 - part 0 - fix why-did-we-allow-that tests in TestRefPtr.cpp
...
RefPtr.h's byref permits callees to see the incoming value of the
outparam; XPCOM's getter_AddRefs zeros outparams prior to the call, so
information doesn't leak through inadvertently. Given this difference,
we need to eliminate tests that depended on this (arguably dangerous)
behavior. The numerous assertion fixups are required because we're
removing construction and destruction of objects along the way.
2015-09-23 23:07:29 -04:00
Jim Blandy
e1252e4e42
Bug 1206356: Add mfbt/Random.h, implementing the xorshift128+ random number generator. r=waldo
...
--HG--
extra : rebase_source : 3eb009156765b341e6a2dcee9f0287ce198c439f
2015-09-23 13:59:28 -07:00
Botond Ballo
78627e8b5d
Bug 1198451 - Tests for mozilla::Function. r=froydnj
...
--HG--
extra : source : 11a2cd3e5c1e051c6bef843b45fe3701364e826a
2015-09-06 21:43:34 -04:00
Phil Ringnalda
dba9d5afc5
Back out 835853a88b03 (bug 1206356) for at least Android/B2G bustage
...
CLOSED TREE
2015-09-22 18:21:32 -07:00
Jim Blandy
68cb70e9c4
Bug 1206356: Add mfbt/Random.h, implementing the xorshift128+ random number generator. r=waldo
...
--HG--
extra : rebase_source : 8694eae8a75a1b56be81826e3d9567d33a9fcdfe
2015-09-22 16:34:51 -07:00
Jeff Gilbert
f9055a2c4d
Bug 1193600 - Add Clamp and IsPowerOfTwo to MFBT. - r=waldo
2015-09-04 13:33:10 -07:00
Nicholas Nethercote
f44287005f
Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
...
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
--HG--
extra : rebase_source : 82e3387abfbd5f1471e953961d301d3d97ed2973
2015-08-27 20:44:53 -07:00
Kan-Ru Chen
2c0adde7a0
Bug 1199068 - Soothe a unused variable warning in TestSplayTree.cpp. r=nfroyd
2015-08-28 11:24:47 +08:00
Nick Fitzgerald
26eaf483ae
Bug 1186693 - Add exhaustive matching to mozilla::Variant; r=Waldo
2015-08-08 16:43:35 -07:00
Liang-Heng Chen
2d9863ad53
Bug 1185706 - support Tie() for mozilla::Pair. r=froydnj
2015-07-24 00:42:00 +02:00
Liang-Heng Chen
5a9d777bf3
Bug 1186315 - Fix TestTuple error and add it into testing list. r=nfroyd
2015-07-21 22:54:00 +02:00
Botond Ballo
f1d4fcd69b
Bug 1184385 - Add a Tie() utility function for tuples (the equivalent of std::tie()) to MFBT. r=froydnj
...
--HG--
extra : rebase_source : 5d6ce0668782e4f3339dbca0d15e2202b566c6b3
extra : source : 9f736422e7903a20560bb83d1832f85a28b89880
2015-07-18 03:48:39 -04:00
Nick Fitzgerald
f3f20427ee
Bug 1184235 - Add mozilla::Vector::emplaceBack; r=froydnj
2015-07-20 11:13:28 -07:00
Nick Fitzgerald
bdd6b06c87
Bug 1184839 - Provide an overloaded == operator for mozilla::Variant; r=Waldo
2015-07-19 16:32:00 +02:00
Steve Fink
fda6cabeb6
Bug 1180299 - Implement ScopeExit for running actions at the end of a scope, r=Waldo
...
--HG--
extra : commitid : JVZx97WUQxy
extra : rebase_source : 5cef069fd3071ad305a3e3f04e0addff577b1093
2015-07-03 14:20:55 -07:00
Xidorn Quan
5ebb867d28
Bug 1175485 part 4 - Add unit test for integer range. r=waldo
...
--HG--
extra : source : 2fb0dd6ca01c21b9282e0d7637ac09c2e8539a02
2015-07-02 13:31:07 +10:00
Nathan Froyd
974d8120f2
Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
...
This conversion was done with the script:
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
-e 's/TemporaryRef</already_AddRefed</g'
Manual fixups were performed in the following instances:
- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
into already_AddRefed.
- The following files had explicit Move() calls added to make up for the lack
of a copy constructor on already_AddRefed:
dom/base/ImageEncoder.cpp
dom/media/MediaTaskQueue.{h,cpp}
dom/media/webaudio/PannerNode.cpp
- A redundant overload for MediaTaskQueue::Dispatch was deleted.
- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.
- Comments, using declarations, and forward declarations relating to
TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
already_AddRefed.
2015-06-17 10:00:52 -04:00
Nick Fitzgerald
474c4d36e3
Bug 1174906 - Add a mozilla::Variant<T1, T2, ...> template class; r=Waldo
2015-06-30 10:01:00 -07:00
Bobby Holley
868aa56b18
Bug 1168008 - Make IsConvertible handle void. r=gerald
2015-05-28 16:03:08 -07:00
Botond Ballo
2e2a504271
Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj
...
--HG--
extra : source : 7468f9a3aa03520a29e138d4df431f0b5d90967c
2015-05-26 14:33:55 -04:00
Phil Ringnalda
49dd872168
Back out 3 changesets (bug 1119980) for emulator-l bustage
...
CLOSED TREE
Backed out changeset 12ce98475c6e (bug 1119980)
Backed out changeset bdb8d05f8870 (bug 1119980)
Backed out changeset a68a18840492 (bug 1119980)
2015-05-25 18:48:51 -07:00
Botond Ballo
9934d127c1
Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj
...
--HG--
extra : rebase_source : 4e915a12ba662ed45788238a5f0a45533888bd92
2015-05-25 20:45:17 -04:00
Botond Ballo
11fb7202f8
Bug 1163328 - Tests for mozilla::Tuple. r=froydnj
...
--HG--
extra : source : 9e53f6a2c0d179b303d8dabec517bfcae870c1f8
2015-05-21 21:14:25 -04:00
Botond Ballo
5d8adc885c
Bug 1163328 - Add an And<...> class to TemplateLib.h which performs logical and on a variadic number of booleans known at compile time. r=froydnj
...
--HG--
extra : source : 1869b74e535c7ef43ac3e21793847f82f2b468de
2015-05-21 22:33:39 -04:00
Nathan Froyd
db188ea282
Bug 1160485 - remove implicit conversion from RefPtr<T> to TemporaryRef<T>; r=ehsan
...
Having this implicit conversion means that we can silently do extra
refcounting when it's completely unnecessary. It's also an obstacle to
making RefPtr more nsRefPtr-like, so let's get rid of it.
2015-05-01 09:14:16 -04:00
Nathan Froyd
3e13ec018f
Bug 1116905 - part 1 - remove dependence on implicit conversion from T* to TemporaryRef<T>, non-gfx changes; r=ehsan
2015-04-30 15:17:08 -04:00
Gerald Squelart
f330df40d4
Bug 1153295 - Add mozilla::Declval. r=nfroyd
2015-04-27 18:11:00 -04:00
Gerald Squelart
173514b341
Bug 1153295 - Add mozilla::AddRvalueReference. r=nfroyd
2015-04-27 18:07:00 -04:00
Andrew McCreight
ceaa3c66f9
Bug 1113300 - Add a way to use SegmentedVector like a stack. r=froydnj
2015-05-07 09:11:00 +02:00
Trevor Saunders
a75cca3a44
no bug - fix -Wreturn-type warning on a CLOSED TREE
2015-05-06 11:12:46 -04:00
Trevor Saunders
ea477e7198
bug 606080 - add SplayTree::LookupOrAdd r=froydnj
2015-05-06 10:57:12 -04:00
Andrew McCreight
0c176ddcff
Bug 1062479 - Use static strings for WeakReference type names. r=ehsan
2015-04-24 09:43:01 -07:00
Seth Fowler
36709ff42c
Bug 1155864 - Rip out Windows intrinsics from Atomics.h and allow Atomic to hold 64-bit types everywhere. r=Waldo
2015-04-17 18:40:52 -07:00
Seth Fowler
dfd05ab4ad
Bug 1143077 (Followup) - Add assignments to Pair test.
2015-03-17 19:40:17 -07:00
Seth Fowler
fcf3c149c4
Bug 1142366 - Add an equivalent of std::make_pair for mozilla::Pair. r=waldo
2015-03-12 17:44:28 -07:00
Nick Fitzgerald
8676e03e08
Bug 1139993 - Add VectorBase::ConstRange that gives out |const T&| entries. r=Waldo
2015-03-06 15:37:00 -05:00
Gerald Squelart
4495d81efb
Bug 1131445 - variadic NS_NewRunnableMethodWithArgs with storage&passing argument type decorators. r=waldo
...
--HG--
extra : rebase_source : 3c2104c19bb37624ec32a1ca4c50235e7cefd953
2015-03-01 18:12:00 +01:00
Gerald Squelart
e984800b68
Bug 1137583 - Fix for CV-qualified pointers; Added tests. r=waldo
...
--HG--
extra : rebase_source : cf379d72ab7165ee5a6f3edad0ec2050ad66001b
2015-03-01 18:08:00 +01:00
Birunthan Mohanathas
847dbb9825
Bug 1120796 - Part 1: Prepare code for explicit bool operators. r=Waldo
2015-02-03 18:52:28 +02:00
Masatoshi Kimura
6cc5dabbee
Bug 1111290 - Part 3: Remove TypedEnum.h and fold TypedEnumInternal.h into TypedEnumBits.h. r=waldo
2015-01-26 07:22:11 +09:00
Masatoshi Kimura
be535304d8
Bug 1111290 - Part 1: Remove MOZ_(BEGIN|END)_ENUM_CLASS. r=waldo
2015-01-26 07:22:07 +09:00
Trevor Saunders
5b86ecf80c
bug 1077549 - remove useless gcc version checks r=glandium
2015-01-15 21:30:05 -05:00
Masatoshi Kimura
01a636855c
Bug 1120062 - Part 2: Remove use of IsNullPointer. r=waldo
2015-01-15 02:09:11 +09:00
Ehsan Akhgari
47c67459e2
Backed out changeset 11aebde6e809 (bug 1120059) because of build bustage on Windows
2015-01-13 00:26:16 -05:00
Birunthan Mohanathas
3bbc9f5d8f
Bug 1120059 - Remove MOZ_{HAVE_,}EXPLICIT_CONVERSION. r=Waldo
2015-01-13 06:41:15 +02:00
Masatoshi Kimura
bf312ad056
Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo
2015-01-11 11:34:52 +09:00
Ehsan Akhgari
4354953b4f
Bug 1118486 - Part 1: Use `= delete` instead of MOZ_DELETE directly; r=Waldo
...
Most of this patch (with the exception of dom/bindings/Codegen.py) was
generated by the following bash script:
#!/bin/bash
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "*/.git*" \
! -wholename "obj-*" \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.cc" \
-o -iname "*.idl" \
-o -iname "*.ipdl" \
-o -iname "*.ipdlh" \
-o -iname "*.mm" \) | \
xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}
convert MOZ_DELETE '= delete'
2015-01-08 23:19:05 -05:00
Ehsan Akhgari
039292de5d
Bug 1119071 - Clean up some code used for older unsupported MSVC versions in MFBT; r=froydnj
2015-01-08 10:40:15 -05:00
Ehsan Akhgari
1813ae2d33
Bug 867348 - Part 2: Apply MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT to CheckedInt's constructor; r=jrmuizel,cpearce
...
Note that the analysis currently just looks at the AST subtree of the
function call site and is therefore unable to correctly deal with cases
such as the last two hunks of the change to OggCodecState.cpp. Fixing
the analysis to deal with that would be very difficult, so we currently
adjust the code so that it compiles. The first hunk in that file though
is a real bug that this analysis found.
2014-12-18 15:27:05 -05:00
Ryan VanderMeulen
3d7d4af71d
Backed out changesets acb4dd16755c and 40768f723990 (bug 867348) for static analysis bustage.
...
CLOSED TREE
2014-12-18 15:59:51 -05:00
Ehsan Akhgari
2e80a88820
Bug 867348 - Part 2: Apply MOZ_NO_ARITHMETIC_EXPR_IN_ARGUMENT to CheckedInt's constructor; r=jrmuizel
...
Note that the analysis currently just looks at the AST subtree of the
function call site and is therefore unable to correctly deal with cases
such as the last two hunks of the change to OggCodecState.cpp. Fixing
the analysis to deal with that would be very difficult, so we currently
adjust the code so that it compiles. The first hunk in that file though
is a real bug that this analysis found.
--HG--
extra : rebase_source : b44bb6d90d95551d860e0b5a1afcf2bb35cde084
2014-12-18 15:27:05 -05:00
Nicholas Nethercote
0846dc4263
Bug 1109407 - Give SegmentedVector a default segment size. r=froydnj.
...
--HG--
extra : rebase_source : 0ceae77c9fec06bbd8c3231434f62fc0e83d9bf1
2014-12-11 14:11:43 -08:00
Nicholas Nethercote
8225c5d531
Bug 1102525 (part 2) - Add SegmentedVector to MFBT. r=froydnj.
...
This is based on the SegmentedArray type from nsCycleCollector.cpp.
--HG--
extra : rebase_source : 06d2feea3233e5ddd3c47d18c53a661de8a06bb2
2014-12-08 14:45:13 -08:00
Jeff Walden
a904b21ab1
Bug 1105261 - Revert fresh vectors to not prereserving their inline allocation space, because the guaranteed extent of that space is an implementation detail. r=nbp
2014-11-26 16:01:19 -05:00
Phil Ringnalda
9c46b376e7
Backed out 2 changesets (bug 1052139, bug 1105261) for b2g desktop crashes
...
CLOSED TREE
Backed out changeset 72c672d91f9c (bug 1052139)
Backed out changeset e3ce0e3a147c (bug 1105261)
2014-12-01 18:25:53 -08:00
Jeff Walden
ed080d201a
Bug 1105261 - Revert fresh vectors to not prereserving their inline allocation space, because the guaranteed extent of that space is an implementation detail. r=nbp
...
--HG--
extra : rebase_source : ec5431786f504651b1f8a4a019da6e537b6ac175
2014-11-26 16:01:19 -05:00
Matthew Gregan
52f69d5963
Bug 1097512 - Allow using compound operators where the LHS and RHS are both CheckedInt<T>. r=jwalden+bmo
2014-11-14 16:13:23 +13:00
Mike Hommey
47c853314f
Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
...
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.
Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.
Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Nicholas Nethercote
295bcae988
Bug 1074591 (part 2) - Remove Pointer{Element,Property}() from JSONWriter. r=froydnj.
...
--HG--
extra : rebase_source : db07aa93df880e201eba866cb791ccaa245f0ef8
2014-10-02 18:01:32 -07:00
Nicholas Nethercote
56daec2fe6
Bug 1074591 (part 1) - Allow JSON collections to be printed on a single line. r=froydnj.
...
--HG--
extra : rebase_source : d576a70d2d1ff83311ab8cce849ec0b5a6b3fa80
2014-10-02 18:01:19 -07:00
Masayuki Nakano
506e55fe0a
Bug 1069726 Don't use non-ASCII characters in cpp files for avoiding bustage with Visual Studio in some locales r=njn
2014-09-19 20:34:13 +09:00
Nicholas Nethercote
273d7cc068
Bug 1067699 (part 2) - Add mfbt/JSONWriter.h and use it for memory reporting. r=froydnj.
...
--HG--
extra : rebase_source : 7eb21c4c20c0434b3b236d1c53cbef9cb6a4759c
2014-09-14 23:36:18 -07:00
Mike Hommey
0060683747
Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal
2014-09-03 14:16:37 +09:00
Mike Hommey
ed70c5f377
Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps
2014-09-03 14:10:54 +09:00
Georg Fritzsche
8323fbaa7f
Bug 1059179
- Add BinarySearchIf(). r=waldo
2014-09-01 19:26:16 +02:00
Seth Fowler
2450461f0f
Bug 1057840 (Part 2) - Expand MSVC version bounds for decltype scope operator workaround. r=waldo
2014-08-26 13:57:45 -07:00
Seth Fowler
47a6f9b86b
Bug 1057840 (Part 1) - Expand GCC version bounds for decltype scope operator workaround. r=waldo
2014-08-26 13:57:43 -07:00
Seth Fowler
a712b649ab
Bug 913586 (Part 9) - Add more useful features to the Maybe<T> API. r=waldo
...
* * *
Bug 913586 (Part 10) - Add a test for Maybe<T>. r=waldo
2014-08-22 00:43:02 -07:00
Mike Hommey
89777800f9
Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
...
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00
Ehsan Akhgari
4d78ae894d
Bug 1048013 - Fix some bad implicit constructors in MFBT; r=froydnj
2014-08-05 09:21:12 -04:00
Nicholas Nethercote
21f35c3811
Bug 1047195 - MFBT: Convert UniquePtr module to Gecko style. r=Ms2ger.
2014-07-31 20:34:17 -07:00
Nicholas Nethercote
ff21669f0b
Bug 980934 (part 1) - Add mfbt/tests/TestSplayTree.cpp. r=froydnj.
...
--HG--
extra : rebase_source : 2fa739b40d6b6f136002abc875a7c558cb4dd4ed
2014-07-30 15:53:40 -07:00
Benoit Jacob
14dbb23161
Bug 1044668 - 2/2 - let WebGLFramebufferAttachable::AttachmentPoint use WeakPtr instead of a raw pointer - r=kamidphish
2014-07-30 15:52:08 -04:00
Benoit Jacob
c50ccf8dba
Bug 1044658 - 5/6 - remove asWeakPtr - r=froydnj
2014-07-30 15:52:05 -04:00
Nicholas Nethercote
6548e9518e
Bug 1045920 (part 2) - Add mfbt/tests/TestRefPtr.cpp. r=froydnj.
2014-07-30 06:59:52 -07:00
Nicholas Nethercote
6c3f5d7b8e
Bug 1041914 - Convert the fourth quarter of MFBT to Gecko style. r=Ms2ger.
...
--HG--
extra : rebase_source : 588fa9c0d1e819e1826835c4ef4a1428a927bf93
2014-07-22 20:54:41 -07:00
Mike Hommey
5fab42fcaf
Bug 1036894
part 8 - Move most in-tree library linkage information to moz.build, as USE_LIBS. r=gps
2014-07-23 13:30:52 +09:00
Mike Hommey
6d6d400ea1
Bug 1036894
part 6 - Emit SimplePrograms for CPP_UNIT_TESTs, and make the corresponding moz.build config look like that of SIMPLE_PROGRAMS. r=gps
2014-07-23 13:29:44 +09:00
Nicholas Nethercote
2a0942be41
Bug 1036789 - Convert the third quarter of MFBT to Gecko style. r=Ms2ger.
...
--HG--
extra : rebase_source : 668cd394806203ddfa34bd4f226335ff26c846b5
2014-07-10 19:10:17 -07:00
Jeff Walden
a377a906df
Bug 953296 - Properly condition function-deleter tests on SHOULD_TEST_FUNCTION_REFERENCE_DELETER. r=bustage
2014-07-08 11:37:45 -07:00
Jeff Walden
83843f0171
Bug 953296 - Implement mozilla::MakeUnique. r=jcranmer
...
--HG--
extra : rebase_source : 6e25d80e697f1b00e1525f6b11221f4ed9cf965e
2014-06-10 17:42:58 -07:00
Jeff Walden
9b3cc8ddf5
Bug 953296 - Implement mozilla::UniquePtr. r=jcranmer
...
--HG--
extra : rebase_source : 76dadc240c40d1ffbd2f3a0414c3667ff2d6706d
2013-12-30 13:34:15 -06:00
Jeff Walden
2c5ed1828b
Bug 953296 - Introduce an EBO-performing Pair class to mfbt. r=jcranmer
...
--HG--
extra : rebase_source : a5d4ad52736a66656aaf3947b31ce8087b859491
2014-06-09 08:49:18 -07:00
Jeff Walden
297cdb7279
Bug 1030515 - Make IsSigned and IsUnsigned usable with user-defined types. r=froydnj
...
--HG--
extra : rebase_source : f74d5c0b9f05a56c4d56aba1ebbdb944a3464b30
2014-06-25 18:47:04 -07:00
Jeff Walden
f4c09e1ea5
Bug 1029132 - Add mozilla::IsInRange method to write out in-range tests more simply. r=froydnj
...
--HG--
extra : rebase_source : b57c74750e4db2bc5ffe4655069f3597fab5a6b2
2014-06-23 14:14:26 -07:00
Jeff Walden
770045e23f
Bug 953296 - Add IsLvalueReference and IsVoid. r=jcranmer
...
--HG--
extra : rebase_source : 53def7d45901da43ffbcfef3adbbea3a3e6bb329
2014-01-09 10:09:14 -06:00
Jeff Walden
b706ddaf73
Bug 953296 - Implement mozilla::RemoveExtent. r=jcranmer
...
--HG--
extra : rebase_source : 97d4f055fc80074265bd5c8b1b0a565d8e994e7b
2014-06-10 12:58:17 -07:00
Nicholas Nethercote
9439ff268e
Bug 1026319 - Convert the second quarter of MFBT to Gecko style. r=froydnj.
...
--HG--
extra : rebase_source : 98d2557c7fe4648d79143c654e7e31767fca2e65
2014-06-12 23:34:08 -07:00
Chris Peterson
969f9037ad
Bug 1024318 - Fix warnings in mfbt/tests/ and mark as FAIL_ON_WARNINGS. r=Waldo
2014-06-14 12:47:01 -07:00
Ehsan Akhgari
11ef71dec3
Bug 1025143 - Fix a compilation error in TestTypedEnum.cpp with clang-cl; r=bjacob
...
This makes the code more correct since if we don't have constexpr
support in the compiler, the CastableTypedEnumResult type would
actually not be a literal type, so we should not assert that here.
2014-06-13 15:22:16 -04:00
Ehsan Akhgari
8b30e40485
Bug 1013662 - Fix bad implicit conversion constructors in MFBT; r=froydnj,Waldo
2014-06-06 23:17:06 -04:00
Ehsan Akhgari
fcbd7ebc45
Bug 1022050 - Disable the SEH block used in TestPoisonArea.cpp on clang-cl until it grows SEH support; r=froydnj
2014-06-06 23:11:58 -04:00
Chris Peterson
163d828c29
Bug 945029 - Fix up Android's broken [u]intptr_t inttype macros. r=Waldo
2014-05-12 22:27:14 -07:00
Birunthan Mohanathas
5e01b2cee4
Bug 1001987
- Make MOZ_STATIC_ASSERT_VALID_ARG_COUNT compatible with ICC. r=Waldo
2014-04-28 07:48:00 +02:00
Benoit Jacob
05d01a79c8
Bug 987290 - Work around a GCC 4.6.3 ICE - no review, bustage fix
2014-04-28 12:27:13 -04:00
Benoit Jacob
a8a9cf90c0
Bug 987290 - Follow-up: fix TestTypedEnum to avoid requiring behavior that relies on explicit conversions, when they are not available. Fixes the build on MSVC 2012 - no review, bustage fix
2014-04-27 22:46:40 -04:00
Benoit Jacob
888ca078bf
Bug 987290 - Allow using MFBT Typed Enums as bitwise flags - r=Waldo
2014-04-25 22:34:04 -04:00
Blair McBride
af6be312f8
Backed out 2 changesets (bug 987290). r=sheriff
...
Backed out changeset 4ad1f662f521 (bug 987290)
Backed out changeset 080ff1f86465 (bug 987290)
2014-04-27 20:41:58 +12:00
Benoit Jacob
645e93ca92
Bug 987290 - Allow using MFBT Typed Enums as bitwise flags - r=Waldo
2014-04-25 22:34:04 -04:00
Birunthan Mohanathas
772debb89d
Bug 989460 - Part 2: Add MOZ_FOR_EACH macro. r=Waldo
2014-04-24 10:49:00 +02:00
Birunthan Mohanathas
accb4d62ef
Bug 989460 - Part 1: Add MacroArgs.h for macros related to implementing variadic macros. r=Waldo
...
This also converts MOZ_RELEASE_ASSERT and MOZ_BEGIN_NESTED_ENUM_CLASS to use the new helper macros.
2014-04-24 10:48:00 +02:00
Benoit Jacob
7c2d5b3529
Bug 807607 - Make MFBT tests use MOZ_RELEASE_ASSERT instead of MOZ_ASSERT to ensure test coverage in non-DEBUG - r=Waldo
...
find mfbt/tests/ -type f | xargs sed -i 's/MOZ_ASSERT/MOZ_RELEASE_ASSERT/g'
2014-04-24 17:06:50 -04:00
Luke Wagner
73f0ab2246
Bug 998507 - add BinarySearch (r=sunfish)
...
--HG--
extra : rebase_source : 6ba04575a5dd8a886235e6799bc790c7a3afc64f
2014-04-15 21:30:26 -05:00
Benoit Jacob
006b370dc5
Bug 987274 - Add IntegerTypeTraits.h to MFBT for additional integer traits and helpers that don't have type_traits equivalents - r=Waldo
2014-04-01 09:38:42 -04:00
Dan Gohman
1bb01da898
Bug 978397 - Fix the implementation of CountPopulation_32 on Windows. r=nbp
2014-03-11 08:09:55 -04:00
Ehsan Akhgari
17f4a32d8b
Bug 976896 - Port STL_FLAGS to moz.build; r=mshal
2014-03-04 19:39:06 -05:00
Benjamin Bouvier
cab8750482
Bug 939843: Tests for mfbt::Floats; r=waldo
...
--HG--
extra : rebase_source : a6515f7d4e82e020fd7686f14932855873078813
2014-02-27 16:23:08 +01:00
Benjamin Bouvier
1ce0aa6d4a
Bug 939843: Unify FloatingPoint's code for Double and Float; r=waldo
...
--HG--
extra : rebase_source : 2f7956d497d534af8931939a38a29ad27695a3fc
2014-01-30 15:54:46 +01:00
Ehsan Akhgari
497c5f3692
Bug 935778 - Part 0.5: Add two more MOZ_DECLARE_REFCOUNTED_TYPENAME to TestWeakPtr.cpp
2014-02-21 09:45:05 -05:00
Ehsan Akhgari
d91d200572
Bug 969757 - Remove the dead code in our tree which pretends to support OS/2; r=roc,mcmanus,gps,jorendorf,bsmedberg sr=bsmedberg
2014-02-10 17:57:01 -05:00
Viktor Stanchev
529b872af2
Bug 965837 - Add bool support to mozilla::Atomic. r=froydnj
2014-02-06 14:57:30 -05:00
Kartikaya Gupta
a6ffc9d1a7
Bug 948984 - Add functions to fuzzily compare float numbers. r=bjacob, r=Waldo
2014-02-05 17:04:42 -05:00
Marcin Juszkiewicz
4935cd342c
Bug 963029 - AArch64 support for MFBT. r=froydnj
2014-01-23 16:34:31 -05:00
Jeff Walden
bb04f6021f
Bug 953296 - Implement mozilla::IsArray. r=froydnj
...
--HG--
extra : rebase_source : 3eb6fff774f28c39374f1e7c148f472d95e538c0
2013-12-30 01:07:32 -06:00
Jeff Walden
badf564cf4
Bug 953296 - Implement mozilla::IsRvalueReference and mozilla::IsReference. r=froydnj
...
--HG--
extra : rebase_source : 39cf8fa339f1ea640681fda0d0cda536e5228709
2013-12-30 01:07:25 -06:00
Jeff Walden
6276d9c191
Bug 953296 - Implement mozilla::IsClass and mozilla::IsEmpty. r=jcranmer
2013-12-30 01:07:39 -06:00
Daniel Holbert
225cc7f485
Bug 945121: Use DebugOnly to fix opt-only 'unused variable' build warning in TestCeilingFloor.cpp. r=Waldo
2013-12-20 13:41:48 -08:00
Mike Hommey
8fd06cf41b
Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal
2013-11-27 22:55:07 +09:00
Mike Hommey
b32a4ed166
Backout changeset 3fd4b546eed4 (bug 874266) and changeset a35d2e3a872f (bug 942043) for ASAN build bustage and Windows test bustage
...
--HG--
extra : amend_source : f20d09aeff1c8b5cbd0f1d24c7ce04e86f3aed1d
2013-11-28 14:24:05 +09:00
Mike Hommey
682364d535
Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal
2013-11-28 13:08:16 +09:00
Anthony Jones
1b55186ecf
Bug 888084 - Rolling mean for MFBT; r=waldo
2013-09-24 15:56:55 +12:00
Dan Gohman
0333b1cb4a
Bug 930708 - IonMonkey: Factor out a DoubleEqualsInt32 from DoubleIsInt32 and use it when negative zero is to be treated as zero. r=nbp
2013-11-02 14:29:44 -07:00
Mike Hommey
59a17d0f20
Bug 921492 - Make StrictOrderingOnAppendList use actual alphabetical sorting. r=mshal,r=gps
2013-10-24 08:05:43 +09:00
Dan Gohman
d359733f1c
Bug 924637 - Document a somewhat counterintuitive case in ExponentComponent, and add test coverage for it. r=waldo
2013-10-09 06:41:42 -07:00
Birunthan Mohanathas
18e6a4180c
Bug 918436 - Make the type argument of MOZ_BEGIN(_NESTED)_ENUM_CLASS optional and add tests. r=Waldo
2013-10-04 13:17:13 -04:00
Dan Gohman
dfbc494859
Bug 918350 - SpiderMonkey: Remove js_NaN in favor of a new mozilla::GenericNaN() function. r=waldo
2013-09-19 18:42:56 -07:00
Mike Hommey
f8bc7fa754
Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps
2013-09-05 09:01:46 +09:00
Jeff Walden
de9ce95170
Bug 730805 - Provide mozilla/IntegerPrintfMacros.h to implement the PRI* macros portion of the <inttypes.h> interface. r=espindola
...
--HG--
extra : rebase_source : be80333003c6fec659e736a77463568c836d8348
2011-12-15 00:27:42 -05:00
Dan Gohman
a466fea3f5
Bug 910814 - IonMonkey: Add testcases for several FloatingPoint.h predicates. r=waldo
2013-09-02 13:53:35 -07:00
Dan Gohman
490ec473f0
Bug 906368 - IonMonkey: Define a proper CountPopulation32 function, and use it in place of manual code in RegisterSets.h. r=nbp
2013-08-19 12:32:22 -07:00
Birunthan Mohanathas
1baab48cb7
Bug 888548 - Part 3: Add enum support to mozilla::Atomic<T>. r=froydnj
...
Due to a bug in GCC, the compareExchange function is not available with enum types.
2013-08-01 21:21:32 -04:00
Daniel Holbert
819cbd5af1
backout fc98067f0aa4 (Bug 888548 part 3) for B2G build bustage
2013-07-31 19:04:25 -07:00
Birunthan Mohanathas
6f4e72b203
Bug 888548 - Part 3: Add enum support to mozilla::Atomic<T>. r=froydnj
...
Due to a bug in GCC, the compareExchange function is not available with enum types.
2013-07-31 21:15:25 -04:00