Commit Graph

904 Commits

Author SHA1 Message Date
Jim Blandy
c6ba9aea49 Bug 1206356: Add mfbt/Random.h, implementing the xorshift128+ random number generator. r=waldo 2015-09-22 16:34:51 -07:00
James Cheng
ee6affcd8b Bug 1204790 - Prefer deleted function with public access specifiers instead of private in UniquePtr. r=nfroyd 2015-09-15 19:18:00 +02:00
Andrew McCreight
2e4be7587d Bug 1201271 - Warn about unused results for more methods of nsTArray. r=froydnj
This leaves alone the AppendElement methods.
2015-09-15 15:30:44 -07:00
Andrew McCreight
d473e4a5ac Bug 1203314 - Make operator<< a method on unused_t. r=froydnj
This prevents operator overload resolution from failing when this file
is included in a file that uses Chromium IPC logging.
2015-09-10 13:17:00 +02:00
Michael Layzell
f20336e5e1 Bug 1201190 - Part 3: Mark every consumer of GUARD_OBJECT as MOZ_RAII, r=ehsan 2015-09-12 16:53:33 -04:00
Michael Layzell
db44155a72 Bug 1201190 - Part 2: Add MOZ_NON_TEMPORARY_CLASS and MOZ_RAII to mfbt, r=ehsan 2015-09-12 16:53:32 -04:00
Michael Layzell
2e2e2bf5ed Bug 1156802 - Part 2: Remove all explicit move constructors, r=ehsan 2015-09-12 12:34:45 -04:00
Botond Ballo
08886f3037 Bug 1198451 - Tests for mozilla::Function. r=froydnj 2015-09-06 21:43:34 -04:00
Botond Ballo
12bc5b46c3 Bug 1198451 - Add a type-erased callable wrapper, mozilla::Function, to MFBT. r=froydnj 2015-09-11 14:40:09 -04:00
Chris Peterson
5f2318a53e Bug 1202568 - Cherry-pick warning fixes from upstream double-conversion. r=Ms2ger 2015-09-05 00:38:04 -07:00
Nicholas Nethercote
c2a508e576 Bug 1202965 (part 1) - Add MOZ_UNUSED. r=froydnj. 2015-09-09 17:01:28 -07:00
Wes Kocher
9bcea3c39d Backed out changeset f5b2a11c64c9 (bug 1201271) for bustage 2015-09-09 15:56:21 -07:00
Andrew McCreight
e0986ef5bc Bug 1201271 - Warn about unused results for more methods of nsTArray. r=froydnj
This leaves alone the AppendElement methods.
2015-09-09 15:39:10 -07:00
Robert O'Callahan
038ddb54c8 Bug 1202317. Support PodEqual over fixed-length arrays. r=Waldo 2015-09-07 17:07:59 +12:00
Jeff Gilbert
6020ad60de Bug 1193600 - Add Clamp and IsPowerOfTwo to MFBT. - r=waldo 2015-09-04 13:33:10 -07:00
Nicholas Nethercote
69d088e45f 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.
2015-08-27 20:44:53 -07:00
Kan-Ru Chen
223fbd1243 Bug 1199068 - Soothe a unused variable warning in TestSplayTree.cpp. r=nfroyd 2015-08-28 11:24:47 +08:00
Makoto Kato
16cbbc80a0 Bug 1197734 - Add MOZ_HAVE_CXX11_CONSTEXPR_IN_TEMPLATES on VS2015+. r=Waldo 2015-08-25 16:53:25 +09:00
Mike Hommey
f2a2161664 Bug 1189967 - Avoid including <string> from Char16.h. r=nfroyd
Since Char16.h is included everywhere, and MSVC 2015 uses the char16ptr_t trick
it contains, we include <string> everywhere, but that has the side effect of
breaking the build in subtle ways. One way around this would be to avoid including
Char16.h in the first place, but that requires more work than I was ready to put
in. So instead, just avoid including <string> by removing the conversion operator
for std::wstring.
2015-08-23 22:20:33 +09:00
Xidorn Quan
eee59d7dca Bug 1189655 - Define MOZ_HAVE_CXX11_CONSTEXPR on VS2015 or later. r=Waldo 2015-08-21 09:17:18 +10:00
Nathan Froyd
b697c4bbab Bug 1196451 - tweak comment in nsRefPtr.h to be more clear; r=botond
DONTBUILD because this is a comment-only fix.
2015-08-20 00:59:28 -04:00
Xidorn Quan
539c5ebd2f Bug 1195154 - Replace operator overloads for comparing nsRefPtr to 0 with those for comparing to nullptr. r=froydnj 2015-08-19 11:06:05 -07:00
Nigel Babu
134dcc51bf Backed out changeset 20c6f74296e2 (bug 1195154) for causing Bug 1196115 2015-08-19 20:43:11 +05:30
Xidorn Quan
0d959e07a3 Bug 1195154 - Replace operator overloads for comparing nsRefPtr to 0 with those for comparing to nullptr. r=froydnj 2015-08-19 09:09:08 +10:00
Michael Layzell
9b3c25dbd1 Bug 1192130 - Part 2: Use MOZ_NON_AUTOABLE to validate the usage of already_AddRefed, r=ehsan 2015-08-14 17:33:54 -04:00
Aryeh Gregor
63b0eff435 Bug 1193298 - Part 3: Delete RefPtr<T>::operator T*()&&. r=froydnj
I put MOZ_HAVE_REF_QUALIFIERS in Attributes.h for lack of a better
place.  I didn't especially want to make a whole new file for it.

To make the tree compile, support for moving RefPtr to nsRefPtr was
needed.  I chose to put the definitions in RefPtr.h instead of
nsRefPtr.h because RefPtr.h looks to be included in fewer files, so I
preferred to bloat fewer files with the extra include.

For some reason operator!() wasn't necessary here, although it seems it
is for nsRefPtr.
2015-08-11 06:45:00 -04:00
Aryeh Gregor
1d86aaeb8e Bug 1179451 - Part 5: Delete nsRefPtr<T>::operator T*()&&. r=froydnj 2015-08-13 15:22:48 +03:00
Nathan Froyd
7035ff44dc Bug 1193005 - delete unused function nsRefPtr::begin_assignment; r=erahm
We don't use it; the getter_AddRefs overload for nsRefPtr uses
StartAssignment, which is the same thing.
2015-08-11 00:23:33 -04:00
Michael Layzell
31aee9c961 Bug 885515 - Part 2: Add MOZ_HEAP_CLASS to mfbt, r=ehsan 2015-08-09 12:42:11 -04:00
Nick Fitzgerald
2d2a9c527c Bug 1186693 - Add exhaustive matching to mozilla::Variant; r=Waldo 2015-08-08 16:43:35 -07:00
Nathan Froyd
2dafe5a1d6 Bug 1189894 - remove Atomics.h IntrinsicAddSub hack; r=erahm
This hack was only required for broken headers in GCC 4.6.  Since we
only support GCC 4.7+ now, this hack is no longer necessary.
2015-07-31 22:25:21 -04:00
Botond Ballo
0369104893 Bug 1056356 - Add support for nsRefPtr<const T>. r=froydnj 2015-08-05 13:52:06 -04:00
Aryeh Gregor
3713e55caa Bug 1190823 - Move OwningNonNull.h to xpcom/base/; r=froydnj 2015-08-05 15:28:27 +03:00
Makoto Kato
2efd915f21 Bug 1190313 - Set MOZ_HAVE_EXPLICIT_CONVERSION on VS2015. r=nfroyd 2015-08-05 17:14:42 +09:00
James Cheng
50aa18ff1e Bug 1189231 - Refine operator() call with perfect forwarding. r=nfroyd 2015-07-30 21:16:00 -04:00
Michael Layzell
fda9eeaa3a Bug 1187073 - Use MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS to validate the usage of AlignedStorage2. r=ehsan 2015-07-31 13:59:00 -04:00
Muhsin Ali Steiman
5d2ccdb9cc Bug 1188895 - Replace U+0A00 with U+0200 in MacroForEach.h. r=Ms2ger 2015-08-01 00:36:00 -04:00
James Cheng
43f57cf317 Bug 975246 - Part1 - Implement operator->* in nsRefPtr. r=nfroyd, r=gerald 2015-07-29 19:47:00 +02:00
Bobby Holley
59c4d9cf6c Bug 1188696 - Hoist nsRefPtr.h into MFBT. r=froydnj 2015-07-29 10:44:59 -07:00
Ehsan Akhgari
328ec430c7 Bug 1188204 - Fix more constructors in MFBT; r=froydnj 2015-07-28 12:24:39 -04:00
Oliver Henshaw
994b7de568 Bug 1186126 - Note incompatibility with NSPR printf-like functions. r=nfroyd
printf-like functions
2015-07-27 10:08:00 +02:00
Liang-Heng Chen
236aa9654e Bug 1185706 - support Tie() for mozilla::Pair. r=froydnj 2015-07-24 00:42:00 +02:00
Ehsan Akhgari
fdd8d94d9c Bug 1159433 - Part 2: Add the MOZ_NON_MEMMOVABLE and MOZ_NEEDS_MEMMOVABLE_TYPE macros to MFBT; r=froydnj 2015-07-24 19:15:18 -04:00
Michael Layzell
52acf71f79 Bug 1123907 - Part 2: Add MOZ_NEEDS_NO_VTABLE_TYPE to Attributes.h, and use it to verify the EntryType argument of nsTHashtable; r=ehsan 2015-07-24 19:14:09 -04:00
Nick Fitzgerald
9bd2360913 Bug 1186650 - Do not mark mozilla::Variant copy and move constructors as explicit. r=Waldo 2015-07-22 14:49:00 -04:00
Liang-Heng Chen
4c1c9e0195 Bug 1186315 - Fix TestTuple error and add it into testing list. r=nfroyd 2015-07-21 22:54:00 +02:00
Makoto Kato
9bc8fd7b23 Bug 1007050 - Remove std::isinf workaround for MSVS. r=Waldo 2015-07-23 14:52:29 +09:00
David Major
b575d56915 Bug 1185686: Fix Atomics.h ifdefs for clang-cl. r=froydnj 2015-07-20 17:04:46 -04:00
Botond Ballo
e9aca371fa Bug 1184385 - Add a Tie() utility function for tuples (the equivalent of std::tie()) to MFBT. r=froydnj 2015-07-18 03:48:39 -04:00
Nick Fitzgerald
801e65b0ec Bug 1184235 - Add mozilla::Vector::emplaceBack; r=froydnj 2015-07-20 11:13:28 -07:00
Nick Fitzgerald
63d6aec97b Bug 1184839 - Provide an overloaded == operator for mozilla::Variant; r=Waldo 2015-07-19 16:32:00 +02:00
Jeff Gilbert
84866765dc Bug 1182370 - _BitScan* does not modify *pIndex if input is zero. - r=waldo 2015-07-17 10:24:30 -07:00
Jeff Gilbert
022bd5a118 Bug 1177887 - Deref *after* changing the value held by RefPtr. - r=waldo 2015-07-16 17:15:44 -07:00
Benoit Girard
0d865b0172 Bug 1182516 - Add Chaos Mode environment variable MOZ_CHAOSMODE. r=roc 2015-07-14 17:29:23 -04:00
Birunthan Mohanathas
47ed3a3675 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Michael Layzell
8aa5182766 Bug 1180993 - Part 2: Add the MOZ_MUST_USE attribute to mfbt, and use it to verify usage of already_AddRefed. r=ehsan 2015-07-06 21:42:00 -04:00
Steve Fink
00d2cad857 Bug 1180299 - Implement ScopeExit for running actions at the end of a scope, r=Waldo 2015-07-03 14:20:55 -07:00
Xidorn Quan
5d84fcf3df Bug 1175485 part 4 - Add unit test for integer range. r=waldo 2015-07-02 13:31:07 +10:00
Xidorn Quan
53de407d80 Bug 1175485 part 3 - Remove unused operators, typedefs and IteratorTraits. r=waldo 2015-07-02 13:31:07 +10:00
Xidorn Quan
f8c508bba7 Bug 1175485 part 2 - Add static_assert to MakeRange to ensure it is used with integers. r=waldo 2015-07-02 13:31:07 +10:00
Xidorn Quan
d33f9fcb90 Bug 1175485 part 1 - Allow inner iterator of ReverseIterator deref to any type, and change IntegerIterator, EnumeratedRange, and nsFrameList::Iterator to return value type instead of a reference. r=roc,waldo 2015-07-02 13:31:07 +10:00
Nathan Froyd
35c59484c7 Bug 1161627 - part 3 - remove TemporaryRef<T> from RefPtr.h; r=ehsan 2015-05-05 13:22:12 -04:00
Nathan Froyd
8780083336 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
5fd903f1f1 Bug 1174906 - Add a mozilla::Variant<T1, T2, ...> template class; r=Waldo 2015-06-30 10:01:00 -07:00
Markus Stange
2e0f2286ad Bug 1165185 - Try to avoid invalidations when scrolling transformed elements. r=roc 2015-06-15 19:20:59 -04:00
Nicholas Nethercote
92023d72af Bug 1174046 - Fix PLDHashTable::Iterator in chaos mode again. r=froydnj, a=philor
CLOSED TREE

If you use PLDHashTable::Iterator in chaos mode with a table with zero
capacity, a |% 0| operation takes place in randomUint32LessThan. This change
avoids that.
2015-06-11 18:23:26 -07:00
Nathan Froyd
0bd78f32c5 Bug 1161627 - part 1 - add move constructor and assignment operator for already_AddRefed&& to RefPtr; r=ehsan
This change is prep work for future mass rewriting.
2015-05-05 13:02:21 -04:00
Kartikaya Gupta
b27c900e71 Bug 1164218 - Allow running individual mochitests and reftests in chaos mode. r=roc,froydnj 2015-06-04 13:44:55 -04:00
Michael Layzell
9ff15bc8e0 Bug 1169337 - Clarify MOZ_{NON_,}OWNING_REF/MOZ_UNSAFE_REF documentation. r=froydnj 2015-06-01 14:44:00 -04:00
Milan Sreckovic
28f547eed4 Bug 1131463 - Report AtomicRefCounterWithFinalize doing the wrong thing with AddRef and Release in release build as well. r=sotaro 2015-05-29 16:41:28 -04:00
Bobby Holley
ecae551a8c Bug 1168008 - Make IsConvertible handle void. r=gerald 2015-05-28 16:03:08 -07:00
Mike Hommey
4245f5c436 Bug 991983 - Define SOURCES as SourcePath. r=gps 2015-05-28 07:34:15 +09:00
Kartikaya Gupta
c28affdcba Bug 1160285 - Add a staticruntime version of mfbt and link some stuff against it. r=glandium 2015-05-27 17:22:29 -04:00
Botond Ballo
ad4aea9284 Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-26 14:33:55 -04:00
Phil Ringnalda
7886a51923 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
eeb3ca1139 Bug 1119980 - Use 'snprintf' instead of 'sprintf' to avoid a warning on Lollipop-based builds. r=froydnj 2015-05-25 20:45:17 -04:00
Cameron McCormack
1014c31498 Bug 1147766 - Part 1: Add a mozilla::RangedArray class, for fixed length arrays with a non-zero base index. r=waldo 2015-05-23 12:50:44 +10:00
Cameron McCormack
f3b784c38e Backed out changeset a6fa096f9853 and ec1c41143ff6 (bug 1147766) since I messed up the warning fix. 2015-05-23 15:51:14 +10:00
Cameron McCormack
35b469559c Bug 1147766 - Part 1: Add a mozilla::RangedArray class, for fixed length arrays with a non-zero base index. r=waldo 2015-05-23 12:50:44 +10:00
Phil Ringnalda
919dabf5a5 Back out 2 changesets (bug 1147766) for -Werror bustage
CLOSED TREE

Backed out changeset 10d6fcd9a4e0 (bug 1147766)
Backed out changeset 5754455de846 (bug 1147766)
2015-05-22 20:24:08 -07:00
Cameron McCormack
681e4115c8 Bug 1147766 - Part 1: Add a mozilla::RangedArray class, for fixed length arrays with a non-zero base index. r=waldo 2015-05-23 12:50:44 +10:00
Botond Ballo
41f0e415b3 Bug 1163329 - Add a utility for expanding a tuple into a variadic argument list to MFBT. r=froydnj 2015-05-11 17:23:33 -04:00
Botond Ballo
74fe1f6859 Bug 1163328 - Tests for mozilla::Tuple. r=froydnj 2015-05-21 21:14:25 -04:00
Botond Ballo
dd2280da05 Bug 1163328 - Add a Tuple class to MFBT. r=froydnj 2015-05-21 22:33:49 -04:00
Botond Ballo
f5614ddf55 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 2015-05-21 22:33:39 -04:00
Nathan Froyd
bb51644dac 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
2e5b14f818 Bug 1116905 - part 4 - remove implicit conversion from non-nullptr T* to TemporaryRef<T>; r=ehsan 2015-04-30 15:21:05 -04:00
Nathan Froyd
ce6cd322c7 Bug 1116905 - part 2 - add MakeAndAddRef helper function to facilitate constructing TemporaryRef; r=Ms2ger
With implicit conversion to TemporaryRef going away, one can no longer write:

  return new T(...);

in a function returning TemporaryRef<T>.  Instead, provide MakeAndAddRef
to prevent people from having to construct boilerplate RefPtrs or
similar.  It also makes converting from TemporaryRef to already_AddRefed
somewhat easier.
2015-04-30 15:19:49 -04:00
Nathan Froyd
ac7e1768b8 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
00a33b3cfd Bug 1153295 - Add mozilla::Declval. r=nfroyd 2015-04-27 18:11:00 -04:00
Gerald Squelart
fba7e2edc1 Bug 1153295 - Add mozilla::AddRvalueReference. r=nfroyd 2015-04-27 18:07:00 -04:00
Andrew McCreight
2dfb86e048 Bug 1113300 - Add a way to use SegmentedVector like a stack. r=froydnj 2015-05-07 09:11:00 +02:00
Shu-yu Guo
b75c46733e Bug 1154115 - Rewrite profiler JSON streaming. (r=mstange) 2015-05-11 14:16:44 -07:00
Trevor Saunders
264d3d4829 no bug - fix -Wreturn-type warning on a CLOSED TREE 2015-05-06 11:12:46 -04:00
Trevor Saunders
1e2a03d4fb bug 606080 - add SplayTree::LookupOrAdd r=froydnj 2015-05-06 10:57:12 -04:00
Eric Rahm
6b37859755 Bug 1145056 - Assert that the guard notifier has been initialized. r=froydnj
In order to both verify that guard object notifiers are being properly used
and to silence a coverity warning about an explicit null dereference we
switch over to using a poison value rather than nullptr. An assertion is added
to make sure that the guard object notifier is properly initialized as well.
2015-04-21 16:47:52 -07:00
Andrew McCreight
3af0e9963c Bug 1062479 - Use static strings for WeakReference type names. r=ehsan 2015-04-24 09:43:01 -07:00
Jim Blandy
72afa30eaa NO BUG: Remove incorrect comment about not being able to use variadic templates. DONTBUILD r=waldo 2015-04-23 16:48:19 -07:00
Jeff Walden
437f7dfeeb Bug 1140752 - Land code to self-host %TypedArray%.prototype.set, but don't enable it yet, pending perf-testing. This shouldn't make any changes to the build, except in terms of adding more code to it and affecting binary layout. r=jandem, also much feedback from till that effectively amounts to a review as well 2015-03-04 00:04:53 -08:00
Ehsan Akhgari
0915a15420 Bug 1153348 - Add an analysis to prohibit operator bools which aren't marked as either explicit or MOZ_IMPLICIT; r=jrmuizel
This is the counterpart to the existing analysis to catch
constructors which aren't marked as either explicit or
MOZ_IMPLICIT.
2015-04-21 21:40:49 -04:00