Commit Graph

196 Commits

Author SHA1 Message Date
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