Jeff Walden
04c2468283
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
Jeff Walden
31b0fc3754
Bug 730805 - Import, unmodified, the Microsoft-compatible <inttypes.h> implementation from the 'msinttypes' Google Code project, r26, into mfbt. r=gerv
...
--HG--
extra : rebase_source : 3fa8943627740fc4a4a39b173f8dd77d93f8f8e2
2011-12-07 21:52:38 -05:00
Dan Gohman
2b1946d99c
Bug 910814 - IonMonkey: Add testcases for several FloatingPoint.h predicates. r=waldo
2013-09-02 13:53:35 -07:00
Jan Beich
6009b14cc0
Bug 911140 - Fix a typo that prevents libc++ from using C++11 atomics. r=jcranmer
2013-08-30 16:14:52 -04:00
Joshua Cranmer
642e66f518
Bug 906783 - Attempt to detect the standard C++ library version, r=Waldo
2013-08-29 22:44:23 -05:00
Justin Lebar
a1c5c698e5
Bug 906912 - Add move constructors to mozilla::LinkedList and mozilla::LinkedListElement. r=waldo
...
--HG--
extra : rebase_source : 864a78505421e129a4553634e08a7f9fc343d7d1
2013-08-29 11:54:14 -07:00
Justin Lebar
2e2403726d
Bug 909977 - Rename mozilla::Move to mozilla::OldMove, and make mozilla::Move a synonym for std::move(). r=waldo
...
--HG--
extra : rebase_source : 7b3bb02cc8cbc0ad6721c6c3895564d9567b8ddb
2013-08-29 11:54:14 -07:00
Justin Lebar
a12ca3e4e8
Bug 909514 - Include <new> before mozilla::Maybe (and move Maybe into mfbt/Maybe.h). r=waldo
...
--HG--
rename : mfbt/Util.h => mfbt/Maybe.h
2013-08-27 15:10:28 -07:00
Justin Lebar
8cad37657e
No bug: Fix whitespace in mozilla/LinkedList.h. DONTBUILD
2013-08-22 14:39:34 -07:00
Justin Lebar
400f5b35a9
Bug 907227 - Properly delete LinkedListElement's implicit copy-constructor and operator=. r=waldo
...
--HG--
extra : rebase_source : b5f09c990f38537266c3e42a211a483e1dd291d6
2013-08-21 12:04:29 -07:00
Justin Lebar
6051a9c725
Bug 906909 - Make LinkedList::debugAssertIsSane() compile. r=waldo
...
--HG--
extra : rebase_source : 60027f53b4a8fa91dd7e42863c271c36395d6851
2013-08-21 12:04:29 -07:00
Dan Gohman
d928b6d48d
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
Luke Wagner
014cc1075f
Bug 905850 - Vector should not be copyable (r=terrence)
...
--HG--
extra : rebase_source : 49c2175af92b79a08982d7dfbc7b7af266b27f7a
2013-08-16 10:21:28 -05:00
Trevor Saunders
f420929d6e
bug 905243 - make the constructors for mozilla::Atomic constexpr r=froydnj
2013-08-14 16:28:17 -04:00
Ms2ger
6d567ab3cc
Bug 904110 - Move alignment features out of Util.h into a new header; r=Waldo
2013-08-14 09:00:52 +02:00
Ms2ger
7b4bb6c26b
Bug 903797 - Update mfbt/STYLE to the current policy about include guards; r=Waldo
2013-08-14 09:00:42 +02:00
Till Schneidereit
0fc93a0111
Bug 898653 - Quell 'not enough parameters for macro' warnings in MSVC. r=djvj
...
--HG--
extra : rebase_source : 7e467027c24b795d6764894c12290a630663830e
2013-07-27 13:05:36 +02:00
Nathan Froyd
73a2108665
Bug 900965 - compile failures with gcc 4.6.3 on std::atomic enum support from bug 888548 r=waldo
2013-08-02 18:18:41 -07:00
Guillaume Abadie
18a326928d
bug 899859 - Add typed enums support in strutures / classes - r=Waldo
2013-08-02 20:51:00 -04:00
Birunthan Mohanathas
63e7a796e9
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
Birunthan Mohanathas
c171bc3e7e
Bug 888548 - Part 2: Refactor and cleanup mozilla::Atomic<T> implementation. r=froydnj
...
This moves the increment and decrement operators from detail::AtomicBase to
detail::AtomicBaseIncDec and moves the implementation of the assignment
operator into detail::AtomicBase. Additionally, this changes the integral
implementation to use mozilla::EnableIf for its specialization.
2013-08-01 21:21:32 -04:00
Birunthan Mohanathas
ae2d8513a4
Bug 888548 - Part 1: Add mozilla::IsEnum to TypeTraits.h. r=froydnj
2013-08-01 21:21:31 -04:00
Daniel Holbert
005b01383d
backout 1e31542e117c (Bug 888548 part 1) for B2G build bustage on a CLOSED TREE
2013-07-31 19:05:34 -07:00
Daniel Holbert
b9c2886259
backout f607ac59de19 (Bug 888548 part 2) for B2G build bustage
2013-07-31 19:05:05 -07:00
Daniel Holbert
ec8488ab01
backout fc98067f0aa4 (Bug 888548 part 3) for B2G build bustage
2013-07-31 19:04:25 -07:00
Birunthan Mohanathas
46877a9f5e
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
Birunthan Mohanathas
23665e54d3
Bug 888548 - Part 2: Refactor and cleanup mozilla::Atomic<T> implementation. r=froydnj
...
This moves the increment and decrement operators from detail::AtomicBase to
detail::AtomicBaseIncDec and moves the implementation of the assignment
operator into detail::AtomicBase. Additionally, this changes the integral
implementation to use mozilla::EnableIf for its specialization.
2013-07-31 21:15:25 -04:00
Birunthan Mohanathas
48e7905d3e
Bug 888548 - Part 1: Add mozilla::IsEnum to TypeTraits.h. r=froydnj
2013-07-31 21:15:25 -04:00
Ehsan Akhgari
e95830ec39
Bug 895322 - Part 5: Stop #defining MOZ_STATIC_ASSERT in C++ code; r=Waldo
...
--HG--
extra : rebase_source : 463c9918228e3f46c909cc7cad45c9d2913b0152
2013-07-18 14:39:20 -04:00
Ehsan Akhgari
5ee21d6d3f
Bug 895322 - Part 1: Replace the usages of MOZ_STATIC_ASSERT with C++11 static_assert; r=Waldo
...
This patch was mostly generated by running the following scripts on the codebase, with some
manual changes made afterwards:
# static_assert.sh
#!/bin/bash
# Command to convert an NSPR integer type to the equivalent standard integer type
function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
! -wholename "*security/nss*" \
! -wholename "*/.hg*" \
! -wholename "obj-ff-dbg*" \
! -name nsXPCOMCID.h \
! -name prtypes.h \
-type f \
\( -iname "*.cpp" \
-o -iname "*.h" \
-o -iname "*.cc" \
-o -iname "*.mm" \) | \
xargs -n 1 `dirname $0`/assert_replacer.py #sed -i -e "s/\b$1\b/$2/g"
}
convert MOZ_STATIC_ASSERT static_assert
hg rev --no-backup mfbt/Assertions.h \
media/webrtc/signaling/src/sipcc/core/includes/ccapi.h \
modules/libmar/src/mar_private.h \
modules/libmar/src/mar.h
# assert_replacer.py
#!/usr/bin/python
import sys
import re
pattern = re.compile(r"\bMOZ_STATIC_ASSERT\b")
def replaceInPlace(fname):
print fname
f = open(fname, "rw+")
lines = f.readlines()
for i in range(0, len(lines)):
while True:
index = re.search(pattern, lines[i])
if index != None:
index = index.start()
lines[i] = lines[i][0:index] + "static_assert" + lines[i][index+len("MOZ_STATIC_ASSERT"):]
for j in range(i + 1, len(lines)):
if lines[j].find(" ", index) == index:
lines[j] = lines[j][0:index] + lines[j][index+4:]
else:
break
else:
break
f.seek(0, 0)
f.truncate()
f.write("".join(lines))
f.close()
argc = len(sys.argv)
for i in range(1, argc):
replaceInPlace(sys.argv[i])
--HG--
extra : rebase_source : 4b4a4047d82f2c205b9fad8d56dfc3f1afc0b045
2013-07-18 13:59:53 -04:00
Nathan Froyd
8d86b320b1
Bug 898491 - use the four argument form of compare_exchange_strong in Atomics.h; r=Waldo
...
The C++ standard (29.6p20-22 in N3337) specifies limitations on the failure ordering
for atomic compare-and-exchange. Specifically, you can't pass memory_order_acq_rel or
memory_order_release. For the (T&, T, std::memory_order) version, which we use, the
standard specifies that the provided argument should be "lowered" to comply with the
above restrictions on the failure ordering (29.6p21).
However, it seems that some versions of GCC's <atomic> header don't follow the spec
for the generic versions of std::atomic<>, though they do follow the spec with the
appropriate specializations (bool, integer, and pointer) of std::atomic<>. This
results in mysterious failures when using atomic enums, as bug 888548 purports to
do, and ReleaseAcquire ordering.
Happily, we can work around this by using the more explicit version of
compare-and-exchange. I've chosen to add another member to AtomicOrderConstraints,
even though it'd be the same as LoadOrder. I feel explicitness is to be preferred
here.
2013-07-26 12:31:19 -04:00
Ehsan Akhgari
9c4af96caa
Bug 872127 - Part 3: Remove MSStdInt.h; r=Waldo
2013-07-30 10:25:42 -04:00
Ehsan Akhgari
9854ac6166
Bug 872127 - Part 2: Replace mozilla/StandardInteger.h with stdint.h; r=Waldo,ted
2013-07-30 10:25:31 -04:00
Jeff Walden
ffe50619f2
Bug 895792 - Fix RoundUpPow2's required precondition to not be wrong. r=terrence
...
--HG--
extra : rebase_source : e42420628dad8b8e9fe37287fa8e08eb262fe615
2013-07-25 20:01:45 -07:00
Jeff Walden
30f3a1c0a2
Add #include <new> to mfbt/Vector.h so that placement-new actually works when that header hasn't been bootlegged. No bug, r=too-long-spent-debugging-this
...
--HG--
extra : rebase_source : b4b3a5a10757d01d1c5957736210ed09e3c2b157
2013-07-25 20:01:42 -07:00
Birunthan Mohanathas
6593d6bb16
Bug 784739 - Switch from NULL to nullptr in mfbt/. r=jwalden
...
--HG--
extra : rebase_source : 090706fa9d97854fe3071adf037a09d914a0854f
2013-07-25 16:31:48 -07:00
Ryan VanderMeulen
4b5a38346d
Backed out 3 changesets (bug 896124, bug 784739, bug 894026) for Windows checktest orange on a CLOSED TREE.
...
Backed out changeset 631b3d5d54f4 (bug 896124)
Backed out changeset 5e1dd28ede5d (bug 894026)
Backed out changeset c10c0a6270ec (bug 784739)
2013-07-26 00:08:51 -04:00
Birunthan Mohanathas
2d66acc4f8
Bug 784739 - Switch from NULL to nullptr in mfbt/. r=jwalden
2013-07-25 16:31:48 -07:00
Nicholas Nethercote
2874baae06
Bug 892806 - Clean up InflateUTF8String() and related functions. r=terrence.
...
--HG--
extra : rebase_source : df901e9900fbd01f1adbe430b9ac52428499681f
2013-07-09 23:17:32 -07:00
Ms2ger
28a9e7aa20
Bug 896341 - Update include guards and modelines in MFBT; r=Waldo
2013-07-24 09:41:39 +02:00
Ms2ger
fb6790e6d8
Bug 888643 - Part b: Move CPP_UNIT_TESTS definitions into moz.build files; r=gps
2013-07-24 09:23:06 +02:00
Jeff Walden
dc1be62488
Bug 896842 - Implement mozilla::DoublesAreIdentical. r=luke
2013-06-18 15:35:03 -07:00
Jeff Walden
ece688c64a
Bug 895727 - Fix obvious typo breaking Win64 builds. r=lumpy
2013-07-18 19:30:06 -07:00
Jeff Walden
e127f08ae6
Bug 891177 - Implement mozilla/Vector.h, and make js/Vector.h implement js::Vector using mozilla::Vector's implementation of the functionality. r=terrence
...
--HG--
rename : js/public/Vector.h => mfbt/Vector.h
extra : rebase_source : d5f87a48485e3f2241228a4b003e80974c86fd5f
2013-07-09 16:33:29 -07:00
Jeff Walden
6c81653318
Bug 891177 - Remove Vector.h's js/TemplateLib.h dependency by introducing mfbt/TemplateLib.h with the necessary bits. r=terrence
...
--HG--
extra : rebase_source : e84231171d6bd6c1e2de8201b8c9563375723d01
2013-07-08 12:42:13 -07:00
Jeff Walden
5805e8a35e
Bug 891177 - Move leading/trailing-zero-bit counting functions, ceiling/floor log2 functions, and round-up-pow2 functions into MathAlgorithms.h. r=terrence
...
--HG--
extra : rebase_source : 8cfbd68b8cd4a0e21185dd864c7e827ccfa6b751
2013-07-03 15:46:51 -07:00
Jeff Walden
0217e30c68
Bug 891437 - Implement mozilla/Array.h, a class suitable for use where a C array would be used, with additional debug bounds-checking. r=Ms2ger
...
--HG--
extra : rebase_source : 314232d817e67d9a26dfa215b5c897e0dd0be353
2013-02-07 15:32:20 -08:00
Jeff Walden
05bafaa42a
Bug 891177 - Add an explanatory comment by the const_cast<> in the Move(const T&) overload. r=luke
...
--HG--
extra : rebase_source : 37a91bf2bdfe2b2f96ddebf276ad532d4419c42b
2013-07-13 12:54:18 -07:00
Justin Lebar
316af76b2a
Bug 892839 - Fix buggy example code in Move.h. r=luke DONTBUILD
2013-07-15 10:40:30 -07:00
Xavier Fung
0fc040b27c
Bug 888159 - Fix Decimap.cpp building on VS2013. r=Waldo
2013-07-11 10:13:29 +09:00