Commit Graph

887 Commits

Author SHA1 Message Date
L. David Baron
001cd79ef9 Bug 1214958 - Add operators &=, |=, and ^= to mozilla::DebugOnly. r=froydnj
--HG--
extra : commitid : 2f0PRWFcnzP
2015-10-19 20:42:28 -07:00
Cameron McCormack
0cabb3c016 Bug 1216041 - Add ranged iterator support to mozilla::{Array,RangedArray,EnumerationArray}. r=froydnj 2015-10-20 10:16:20 +11:00
Cameron McCormack
8df7b927c3 Bug 1216040 - Make ArrayLength support mozilla::EnumeratedArray. r=froydnj 2015-10-20 10:16:20 +11:00
Cameron McCormack
4fa140ec32 Bug 1216038 - Deduce underlying integer type for MakeEnumeratedRange starting at 0. r=froydnj 2015-10-20 10:16:19 +11:00
Chris Peterson
0308741102 Bug 1215411 - Define MOZ_FALLTHROUGH annotation to suppress clang's -Wimplicit-fallthrough warnings. r=botond 2015-10-04 21:03:26 -07: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
483783681e Bug 1207245 - part 4 - remove RefPtr.h; r=ehsan
It has been superseded by the availability of nsRefPtr.h.
2015-10-18 00:40:16 -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
Jim Blandy
51d813dfae No bug: Fix comment in mfbt/FastBernoulliTrial.h. DONTBUILD r=me
--HG--
extra : rebase_source : 03a213a8999d4b6b47c6e2be3a8ea06053e24184
extra : amend_source : 9181ae56e72b66bf19fe2129bfab01f0910aaad8
2015-10-16 12:21:39 -07: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
2ac5b36223 Bug 1212624 - Implement range-based iteration for LinkedList, r=Waldo
--HG--
extra : rebase_source : 9d3d1b40cab8542f4e7aaf9ffe1496c646c8291e
2015-10-07 14:19:42 -07:00
Nathan Froyd
86aec2801f Bug 1207245 - part 6a - call AddRef/Release from nsRefPtr itself, rather than a helper; r=botond
The problematic class is AtomicRefCountedWithFinalize, from gfx/layers/;
I don't know all the details for why that class is written the way it
is, but it is simpler to make nsRefPtr work the same way as
mozilla::RefPtr in this case.
2015-10-12 22:29:51 -04: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
Steve Fink
0df76da429 Bug 1212624 - Implement range-based iteration for LinkedList, r=Waldo
--HG--
extra : rebase_source : fb99021b13d030e12257ed420887051c7c5f9b8c
2015-10-07 14:19:42 -07:00
James Cheng
23b7d3da85 Bug 1212745 - Part 1 - operator() Use perfect forwarding to avoid redundant copy. r=nfroyd 2015-10-08 11:38:00 +02: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
Michael Layzell
a764ebee57 Bug 1211979 - Annotate crashes triggered by MOZ_RELEASE_ASSERT, r=froydnj 2015-10-08 17:50:58 -04:00
Michael Layzell
e4681ea6a5 Bug 1183355 - Annotate crash reports triggered by MOZ_CRASH in release builds, r=froydnj 2015-10-08 10:01:08 -04:00
Jon Coppeard
5ea571ddb7 Bug 1211100 - Add Vector::infallibleEmplaceBack and use it in JSScript::initScriptCounts() r=nbp
--HG--
extra : rebase_source : a989ddba0bc981725a955c705a51aa495ef59ab9
2015-10-06 14:50:49 +01:00
Chris Peterson
0c816bee5c Bug 1208357 - Fix -Wshadow warnings in mfbt/decimal. r=Ms2ger sr=Waldo 2015-09-22 20:43:29 -07:00
Jon Coppeard
204777d13d Bug 1207519 - Prevent HashTable shrink from ignoring allocation failures that may have been reported r=Waldo 2015-09-30 11:34:49 +01:00
Jon Coppeard
1ae90ca7ba Bug 1200642 - Add OOM simulation to Vector r=Waldo 2015-09-30 11:34:48 +01:00
Jon Coppeard
0b41e069f3 Bug 1200642 - Add checkSimulatedOOM() to AllocPolicy r=Waldo 2015-09-30 11:34:44 +01: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
Olli Pettay
e91dae783c Bug 1204669 optimize out hashtable lookups caused by extra GetPrototypeBinding call, r=bz,waldo 2015-09-24 03:53:31 +03:00
Nathan Froyd
50eb249b57 Bug 1207245 - part 2 - move MakeAndAddRef to nsRefPtr.h
A number of places depend on RefPtr.h providing this function.  When we
s/RefPtr/nsRefPtr/, such places still need to be able to see this
function.  Moving it to nsRefPtr.h makes it still visible before we
switch (since RefPtr.h includes nsRefPtr.h), and after we switch (since
every place that #includes RefPtr.h will now be #including nsRefPtr.h).
2015-09-22 22:23:10 -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
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
James Cheng
48d19920cb Bug 1204790 - Prefer deleted function with public access specifiers instead of private in UniquePtr. r=nfroyd
--HG--
extra : rebase_source : 9f711462c2e0b9865793c9f4846cb7ab6a60ef32
2015-09-15 19:18:00 +02:00
Andrew McCreight
5446225d17 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
c1e26ee03e 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.

--HG--
extra : rebase_source : 661efe98060d405e87f828655b13c0c0a8a428e0
2015-09-10 13:17:00 +02:00
Michael Layzell
0097c41e01 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
2c245dc4e2 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
1eaae658aa Bug 1156802 - Part 2: Remove all explicit move constructors, r=ehsan 2015-09-12 12:34:45 -04:00
Botond Ballo
78627e8b5d Bug 1198451 - Tests for mozilla::Function. r=froydnj
--HG--
extra : source : 11a2cd3e5c1e051c6bef843b45fe3701364e826a
2015-09-06 21:43:34 -04:00
Botond Ballo
9985fe899c Bug 1198451 - Add a type-erased callable wrapper, mozilla::Function, to MFBT. r=froydnj
--HG--
extra : source : 90ac08992195f6e818a83019567e55e17a350901
2015-09-11 14:40:09 -04:00
Chris Peterson
a037228e4f Bug 1202568 - Cherry-pick warning fixes from upstream double-conversion. r=Ms2ger
--HG--
extra : rebase_source : 732eec4f5748b54e42a23267b2023b303f213983
2015-09-05 00:38:04 -07:00
Nicholas Nethercote
b5bc43ef27 Bug 1202965 (part 1) - Add MOZ_UNUSED. r=froydnj. 2015-09-09 17:01:28 -07:00
Wes Kocher
ba9de6a2f7 Backed out changeset f5b2a11c64c9 (bug 1201271) for bustage 2015-09-09 15:56:21 -07:00
Andrew McCreight
3e590f4e78 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
5d455e0375 Bug 1202317. Support PodEqual over fixed-length arrays. r=Waldo
--HG--
extra : commitid : CojJ669FPWd
extra : rebase_source : fd81c9367dcb9dacf9e5ba137fe9a4ef31a5853e
2015-09-07 17:07:59 +12: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