Commit Graph

476 Commits

Author SHA1 Message Date
Ehsan Akhgari
813eabe121 Bug 943719 - Build MFBT in unified mode; r=froydnj,djvj 2013-11-27 18:59:50 -05:00
Anthony Jones
82d76badf0 Bug 888084 - Rolling mean for MFBT; r=waldo 2013-09-24 15:56:55 +12:00
Jacek Caban
db001e45e0 Bug 928351 - Char16.h and xpcom/strings/public parts r=ehsan,Waldo 2013-11-27 14:40:54 +01:00
Nicholas Nethercote
4d49232050 Bug 893857 (part 1) - Add LinkedList::SizeOf{In,Ex}cludingThis(). r=Waldo.
--HG--
extra : rebase_source : 1b170f930eb28127502b70c7b0b3d0181c11c2df
2013-11-24 15:20:12 -08:00
Bobby Holley
2c38d58f16 Bug 928636 - Whitespace changes. r=Waldo 2013-11-25 09:37:16 -08:00
Bobby Holley
cd4f39907e Bug 928636 - Implement MOZ_RELEASE_ASSERT. r=Waldo 2013-11-25 09:37:15 -08:00
Benoit Jacob
21d9f061c3 Bug 924382 - Allow getting the integer type corresponding to a MOZ_BEGIN_ENUM_CLASS - r=Waldo 2013-11-23 21:20:38 -05:00
Jim Blandy
f0a0296f91 Bug 896100: Convert all uses of OldMove and MoveRef to true rvalue references and the modern Move and Forward. r=luke, r=waldo 2013-11-19 09:05:36 -08:00
Mike Hommey
bb6779efe3 Bug 939044 - Remove most definitions of MODULE. r=mshal 2013-11-19 11:47:39 +09:00
Mike Hommey
57a2dfcb91 Bug 939039 - Remove now useless FORCE_STATIC_LIB definitions. r=gps 2013-11-19 11:47:28 +09:00
Mike Hommey
d7b6f95761 Bug 935881 - Use FINAL_LIBRARY for all (fake) libraries that end up linked in a single other library. r=gps 2013-11-19 11:47:14 +09:00
Joshua Cranmer
a63b835a52 Bug 935789, part 2: Implement RotateLeft/RotateRight in MFBT and use them, r=Waldo.
--HG--
extra : rebase_source : efda8cfde4ec1b8cee007f528d682830f43f9111
2013-11-12 18:24:56 -06:00
Jim Chen
da081c4f7c Bug 935089 - Make ArrayLength, ArrayEnd, and PodArrayZero accept mozilla::Array argument; r=Waldo 2013-11-12 17:31:15 -05:00
Nathan Froyd
19ffd38bd1 Bug 608915 - part 1 - extend ToPrecision to tell use whether exponential notation was used; r=Waldo 2013-11-07 12:46:05 -05:00
Chris Peterson
b821bac13d Bug 935370 - Inline all the Pod functions. r=waldo
--HG--
extra : rebase_source : 289cbc836eead85e5b7feac94c1c6d6ee5cd68de
2013-11-04 18:52:51 -08:00
Jeff Muizelaar
df3077c1c3 Bug 932454. Make Atomics.h compilable with clang on Windows. r=nfroyd,jwalden
MSVC is sloppy with typedefs leaking. Clang is more strict.

--HG--
extra : rebase_source : e8000f43391f8a32fbde96d54ff11e09e49345f9
2013-10-29 17:55:38 -04:00
Karl Tomlinson
3637d636de b=856850 add PodMove r=Waldo
--HG--
extra : transplant_source : %27%04%F0%2B%96%1B0%A7%DB%81D%26%81%A0u%C9j%3E%A2%B0
2013-11-05 13:02:54 +13:00
Dan Gohman
c0da77c4d5 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
Masatoshi Kimura
b54404c0c1 Bug 933586 - Define MOZ_HAVE_CXX11_DELETE for MSVC 12+. r=waldo 2013-11-02 17:57:40 +09:00
Brian O'Keefe
74d92c2d28 Bug 870401 - Fix up the MFBT exports and the sources. r=mshal 2013-10-28 10:21:29 -04:00
Cykesiopka
a3710e5c11 Bug 914270 - Part 1: Simple/Automated moves. r=joey 2013-10-24 18:51:00 +01:00
Mike Hommey
61124c1afc Bug 921492 - Make StrictOrderingOnAppendList use actual alphabetical sorting. r=mshal,r=gps 2013-10-24 08:05:43 +09:00
Benjamin Bouvier
733919732e Bug 913282: IsFloat32Representable function in mfbt; r=Waldo
--HG--
extra : rebase_source : 0d4d6f02b880c37d29e3e41e9d105365d9f941b0
2013-10-22 14:55:35 +02:00
Benjamin Bouvier
04a6f84917 Bug 913282: More Float32 operators: Abs; p=dougc,bbouvier; r=jonco,sstangl
dougc for the ARM parts, bbouvier for the rest.
2013-10-22 14:53:12 +02:00
Masatoshi Kimura
610685c38b Bug 928210 - Get rid of MOZ_INLINE 2013-10-22 06:34:24 +09:00
Ehsan Akhgari
df142464b8 Bug 928091 follow-up: Rewrite the comment in English
--HG--
extra : rebase_source : 9b8c45128f10aa00e0a8e1ab17156c2a42e812db
2013-10-18 20:34:49 -04:00
Ehsan Akhgari
8dd4ae958c Bug 928091 - Fix builds for VS2012 and VS2013 to deal with our char16_t machinery; pending r=Waldo
Landing on a CLOSED TREE because this is blocking multiple people.  My apologies!
2013-10-18 18:49:22 -04:00
Till Schneidereit
c160cdb8ef Bug 888658 - Add LZ4 compression to mfbt. r=jwalden,vlad
--HG--
extra : rebase_source : e92051145948cd3c1e6f95596563d8c13e231ee3
2013-10-18 20:25:30 +02:00
Vladimir Vukicevic
479e7c4efb Bug 888658 - Assertions.h fixup for windows. r=jwalden
--HG--
extra : rebase_source : 7e7fb741860c2603aa1b838eff7761ddcd50e867
2013-10-15 09:07:00 +02:00
Reuben Morais
e98ada57a9 Bug 921871 - Fix -Wunitialized warning in Vector.h. r=Waldo
--HG--
extra : rebase_source : 117d37c7a44c79c6a3b446f3828e5464fc9e391f
2013-10-17 18:29:46 -03:00
Christian Holler
29ea66c471 Bug 847350 - Add/Update MOZ_ASAN/TSAN_BLACKLIST macros. r=waldo
--HG--
extra : rebase_source : c4c58d30ff0b46ca57093cc0b3bbc37af56f2095
2013-10-17 16:29:11 +02:00
Ehsan Akhgari
eb82766684 Bug 895047 - Make char16_t available everywhere and use that to define PRUnichar and jschar; r=jcranmer,jorendorff,glandium 2013-10-17 00:36:13 -04:00
Phil Ringnalda
b6be4e4a2d Back out ee100983f921 (bug 895047) for build bustage
CLOSED TREE
2013-10-16 21:51:55 -07:00
Ehsan Akhgari
2d5e8722de Bug 895047 - Make char16_t available everywhere and use that to define PRUnichar and jschar; r=jcranmer,jorendorff,glandium 2013-10-17 00:36:13 -04:00
Ehsan Akhgari
76272a36ed Bug 923554 - Backout the atomic weak pointer implementation because it's neither atomic nor thread-safe; r=froydnj 2013-10-16 13:48:34 -04:00
Ehsan Akhgari
12d0a13b3c Bug 926083 - Only #include Compiler.h in NullPtr.h if needed; r=froydnj 2013-10-15 17:13:39 -04:00
Ehsan Akhgari
738f5fd13e Bug 924014 - Do not rely on std::numeric_limits<char16_t> being available; r=Waldo 2013-10-15 11:55:37 -04:00
Ehsan Akhgari
aa977286d4 Bug 924012 - Provide a HashString version for char16_t if needed; r=Waldo 2013-10-15 11:54:08 -04:00
Ehsan Akhgari
5867b7e895 Bug 923886 - Remove the Assertions.h #include from Char16.h; r=Waldo 2013-10-05 21:23:07 -04:00
Dan Gohman
5d9cc1f359 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
Gian-Carlo Pascutto
4338131444 Bug 923170 - Require GCC 4.6.x before enabling strong enum support. r=Waldo 2013-10-08 15:25:13 -04:00
Birunthan Mohanathas
a3a95ea5c8 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
Jim Blandy
0a4f6d7144 Bug 919337: Use static_assert in double_conversion::BitCast. r=waldo 2013-09-29 21:18:26 -07:00
Bobby Holley
4a41eab060 Bug 917593 - Don't assert for zero-length strings. r=Waldo 2013-09-27 18:34:24 +02:00
Mike Hommey
0f42ae96d7 Bug 919832 - Remove EXPORTS related rules from rules.mk. r=gps 2013-09-26 16:43:52 +09:00
Ryan VanderMeulen
6977513694 Backed out changeset 74459407359a (bug 917593) for Windows debug checktest asserts. 2013-09-24 16:20:15 -04:00
Bobby Holley
43d3b4a447 Bug 917593 - Don't assert for zero-length strings. r=Waldo 2013-09-24 08:03:22 -07:00
Benjamin Bouvier
bcf0b47126 Bug 913282: Add mfbt Float32 asserts and constants; r=Waldo 2013-09-20 12:08:49 -07:00
Dan Gohman
e79a8b021c Bug 918350 - Change UnspecifiedNaN's bit pattern to be the all-ones NaN. r=waldo 2013-09-19 18:47:55 -07:00
Dan Gohman
463a7c338e Bug 918350 - SpiderMonkey: Remove js_NaN in favor of a new mozilla::GenericNaN() function. r=waldo 2013-09-19 18:42:56 -07:00
Joshua Cranmer
4a4a5f9a8d Bug 904985, part 1: Add better support for char16_t in type traits, r=Waldo.
--HG--
extra : rebase_source : 45cb9155312ead0b8164e1e460c9fd2e39f0d6fc
2013-09-17 22:43:04 -05:00
Jonathan Watt
e7681d121b Bug 909467 - HTMLInputElement crash loading 8bit.js test (consistantly link against the correct StringBuilder). r=Waldo 2013-09-17 13:24:35 +01:00
Seth Fowler
11f1b0d393 Bug 912299 - Make RefCounted's refcount field mutable. r=waldo 2013-09-06 13:32:55 -07:00
Mike Hommey
f1cf3b4238 Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
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