Commit Graph

2052 Commits

Author SHA1 Message Date
Brian Birtles
e152025300 Bug 1039924 part 8 - Include FloatingPoint.h in StickyTimeDuration.h; r=froydnj
Overlooked review feedback from comment:

  https://bugzilla.mozilla.org/show_bug.cgi?id=1039924#c43
2014-09-25 14:35:51 +09:00
Brian Birtles
2268355a2b Bug 1039924 part 7 - Add unary minus operator to BaseTimeDuration; r=froydnj
This patch adds the unary minus operator so, for example, we can write:

  TimeDuration sinceBeforeYourSunBurnedHot = -TimeDuration::Forever();
2014-09-25 14:25:50 +09:00
Brian Birtles
06971eef4d Bug 1039924 part 5 - Add StickyTimeDuration; r=froydnj
This patch adds another implementation of BaseTimeDuration's ValueCalculator
template parameter that is careful to preserve Forever/-Forever values when
performing arithmetic.

It also defines a typedef for a specialization of BaseTimeDuration that uses
this new ValueCalculator definition.
2014-09-25 14:25:50 +09:00
Brian Birtles
7d6c8bae55 Bug 1039924 part 4 - Fill out TimeDurationValueCalculator and use it; r=froydnj
This patch builds on the templatization from the previous patch to move
arithmetic on the mValue member of BaseTimeDuration to the ValueCalculator
template parameter.
2014-09-25 14:25:49 +09:00
Brian Birtles
9d4bf99681 Bug 1039924 part 3 - Templatize TimeDuration so it can support different behaviors with regards to tick count arithmetic; r=froydnj
This patch prepares the way for having a separate StickyTimeDuration class
by factoring TimeDuration into a templated base class: BaseTimeDuration.
BaseTimeDuration takes a templated parameter, ValueCalculator, which is a helper
object that defines how various arithmetic operations are performed on its
mValue member (an int64_t count of ticks).

This patch does not actually define or use the ValueCalculator parameter yet but
simply performs the renaming and templatization.

With regards to the templatization, arithmetic operators are defined to take
objects with the same ValueCalculator template parameter (so that we don't, for
example, apply non-safe arithmetic to a StickyTimeDuration).
However, comparison operators are defined to also operate on objects with
a different ValueCalculator template parameter since comparison should be
independent of the type of arithmetic used.

Likewise, the constructor and assignment operator are defined to operate on
objects with a different ValueCalculator template parameter so that objects can
be converted from TimeDuration to StickyTimeDuration and vice-versa.
The constructor is marked as explicit, however, so that we don't silently
convert a StickyTimeDuration to a TimeDuration and unwittingly apply
non-safe arithmetic to a StickyTimeDuration.

TimeDuration is defined as a specialization of BaseTimeDuration that uses
TimeDurationValueCalculator as its ValueCalculator type.
TimeDurationValueCalculator is filled-in in a subsequent patch.
2014-09-25 14:25:49 +09:00
Brian Birtles
924730126a Bug 1039924 part 2 - Convert between Forever and Infinity when converting TimeDurations; r=froydnj
Now that the implementation of a number of TimeDuration methods have been
delegated to a separate TimeDurationPlatformUtils class, it is easier to add
consistent handling to the parameters passed to and from those methods.

This patch adds checks when converting between TimeDurations and doubles so that
Forever (represented by a tick count of INT64_MAX) is paired with
PositiveInfinity, and INT64_MIN is paired with NegativeInfinity.
2014-09-25 14:25:49 +09:00
Brian Birtles
c333e39282 Bug 1039924 part 1 - Separate platform-dependent parts of TimeDuration into TimeDurationPlatformUtils; r=froydnj
In order to have different templated versions of TimeDuration we first split out
the platform-specific code so that this code doesn't need to concern itself with
templates (and because putting template code in .cpp files is messy).
2014-09-25 14:25:48 +09:00
Honza Bambas
ac3405ae34 Bug 1034638 - Don't make QPC to GTC fallback in TimeStamp_windows let change differences of previously taken timestamps, r=robarnold 2014-09-16 15:51:51 +02:00
Andrew McCreight
06744b6f48 Bug 931285, part 2 - Implement a cycle collected version of nsHashPropertyBag and use it from JS. r=froydnj 2014-09-08 09:41:32 -07:00
Andrew McCreight
1c9fdc95c0 Bug 931285, part 1 - Factor out a base class for nsHashPropertyBag that does not implement refcounting. r=froydnj
Also remove the unused NS_NewHashPropertyBag.
2014-09-08 09:41:22 -07:00
Nicholas Nethercote
df1c26a45e Bug 1057912 - Privatize most of PLDHashTable's fields. r=roc.
--HG--
extra : rebase_source : 0f55e70b63d9c191fbd9418cb1177ff534deeed9
2014-08-25 16:56:33 -07:00
Birunthan Mohanathas
e3a6a8dc06 Bug 1046841 - Convert remaining files in xpcom/{ds,glue,sample}/ to Gecko style. r=froydnj 2014-08-25 12:17:28 -07:00
Birunthan Mohanathas
16471161bb Bug 1046841 - Fix more style violations in previously touched .h files in xpcom/. r=froydnj 2014-08-25 12:17:24 -07:00
Kyle Huey
a874f0a039 Bug 1049694: Remove unused mozilla::CharTokenizer. r=froydnj 2014-08-08 11:11:33 -07:00
Nicholas Nethercote
a7cf4142b4 Bug 1050009 - Initialize pldhash tables with a length, not a capacity. r=roc.
* * *
imported patch rm-dummy-params

--HG--
extra : rebase_source : c25987eb11bae197218d5fc53b77def19afa36ac
2014-08-06 06:31:21 -07:00
Nicholas Nethercote
ac2d623ffd No bug. Remove two "njn: ..." comments I accidentally left in. r=me.
DONTBUILD because the patches contains only trivial comment changes.

--HG--
extra : rebase_source : ecc0bd10c43c6d4223f5301ff11cbd2a56c9912b
2014-08-06 16:19:55 -07:00
Ehsan Akhgari
4af9c14370 Bug 1048239 - Fix more bad implicit constructors in XPCOM; r=froydnj 2014-08-05 09:36:32 -04:00
Nicholas Nethercote
48406d15bd Bug 1047220 - Shrink the static atoms table. r=bz.
--HG--
extra : rebase_source : a7f8d54cce7f20d784371348f0d0cabdacf43c0a
2014-07-31 22:57:13 -07:00
Nicholas Nethercote
d6833db2a9 Bug 1046529 (part 2) - Ensure static atoms always end up in gStaticAtomTable. r=bz,hsivonen. 2014-07-30 23:22:42 -07:00
Nicholas Nethercote
3a306a87c3 Bug 1046529 (part 1) - Split and simplify AtomTableKey's constructors. r=bz. 2014-07-30 23:22:40 -07:00
Nicholas Nethercote
bfc1f78542 Bug 1046477 (part 2) - Don't measure the heap size of static atoms. r=froydnj.
--HG--
extra : rebase_source : c96563845a8a67ee815ba0b84108321cadfa62dd
2014-07-30 23:19:23 -07:00
Nicholas Nethercote
f907318caa Bug 1046477 (part 1) - Separate the reporting of the main and static atoms tables. r=froydnj.
--HG--
extra : rebase_source : c60db11fc39d180e43f22e7f395eea24cd358aa3
2014-07-30 23:06:57 -07:00
Ehsan Akhgari
520fd897ed Bug 1045065 - Fix some bad implicit constructors in xpcom; r=froydnj 2014-07-28 13:19:06 -04:00
Birunthan Mohanathas
c95547c7c8 Bug 1035884 - Follow-up: Use typedef for ns(C){CharSeparated,Whitespace}Tokenizer. r=froydnj 2014-07-27 08:52:52 -07:00
Birunthan Mohanathas
77bec57910 Bug 1035884 - Follow-up: Remove SubstringType template argument for ns{CharSeparated,Whitespace}Tokenizer. r=froydnj 2014-07-27 08:52:52 -07:00
Mike Hommey
bc5d6801bb Bug 1041860 - Avoid setting FINAL_LIBRARY to libraries that further use a FINAL_LIBRARY. r=mshal 2014-07-23 08:37:51 +09:00
Birunthan Mohanathas
0c6b4675d1 Bug 1035884 - Template-ify nsWhitespaceTokenizer to remove duplicate code. r=froydnj 2014-07-18 14:52:29 -07:00
Birunthan Mohanathas
f8536cf3a0 Bug 1035884 - Template-ify nsCharSeparatedTokenizer to remove duplicate code. r=froydnj 2014-07-18 14:52:29 -07:00
Jan de Mooij
cda5c814db Bug 1034627 part 6 - Fix XPCVariant to work with Latin1 strings and nursery strings. r=bholley
--HG--
extra : rebase_source : be029c174195192570da688250583157825e9e06
2014-07-11 09:38:55 +02:00
Carsten "Tomcat" Book
eb71d8cf86 Backed out changeset 110e44b996f8 (bug 1034627) for Valgrind Testfailures on a CLOSED TREE 2014-07-11 11:00:21 +02:00
Jan de Mooij
8ff8c31410 Bug 1034627 part 6 - Fix XPCVariant to work with Latin1 strings and nursery strings. r=bholley 2014-07-11 09:38:55 +02:00
Birunthan Mohanathas
68ba4f3767 Bug 1022456 - Convert xpcom/ds/ to Gecko style. r=froydnj 2014-07-09 08:15:21 -07:00
Birunthan Mohanathas
ae61ac3295 Bug 1035509 - Remove unused xpcom/ds/nsManifestLineReader.h. r=froydnj 2014-07-09 08:15:20 -07:00
Birunthan Mohanathas
b69dfc0d9a Bug 1035509 - Remove unused xpcom/ds/StringBuilder.h. r=froydnj 2014-07-09 08:14:43 -07:00
Benoit Jacob
81effa4bca Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Wes Kocher
03da42e8b1 Backed out 4 changesets (bug 1028588) for build bustage
Backed out changeset 13a8bae671ca (bug 1028588)
Backed out changeset 19a19833f1d6 (bug 1028588)
Backed out changeset d5fae80054de (bug 1028588)
Backed out changeset 5942ad3859b8 (bug 1028588)
2014-06-30 15:50:19 -07:00
Benoit Jacob
522e4724cc Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Brian Birtles
51cf0526d8 Bug 1028514 - Check for integer overflow when converting from floating-point number milliseconds; r=froydnj
In TimeStamp_windows.cpp and TimeStamp_darwin.cpp, in
TimeStamp::FromMilliseconds we cast the floating-point number of ticks to
a 64-bit integer before passing to TimeStamp::FromTicks(int64_t).
This means that we skip the check for integer overflow performed by
TimeStamp::FromTicks(double).

This patch simply removes that cast so that we perform overflow checking.

It also adds an assertion to ElementAnimation since this is one place where
the lack of overflow checking was producing a negative value where it should
not.
2014-06-25 09:42:18 +09:00
Nicholas Nethercote
aaf6fb2124 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Brian Birtles
d3ea6b392e Bug 1004365 part 3b.1 - Add % operator to TimeDuration; r=froydnj 2014-06-11 14:19:08 +09:00
Brian Birtles
80c0d7b5c4 Bug 1004365 part 2 - Add TimeDuration != operator; r=froydnj 2014-06-11 14:19:07 +09:00
Ehsan Akhgari
0d4e61e13c Bug 1022033 - Disable NS_lroundup30 on clang-cl; r=jrmuizel
This function contains inline assembly which clang-cl can't compile yet.
2014-06-06 20:13:48 -04:00
Robert O'Callahan
9875463556 Bug 1015664. Part 3: Remove NS_HIDDEN_VISIBILITY from NS_IMETHOD_VISIBILITY. r=bsmedberg 2014-06-03 00:08:27 +12:00
Robert O'Callahan
cbb8fdebfc Bug 1015664. Part 1: Remove NS_HIDDEN_() usage. r=bsmedberg 2014-06-03 00:08:21 +12:00
Brian Birtles
9b56ae1a90 Bug 1016757 - Add TimeDuration::operator* (const uint64_t) const, i.e. accept an unsigned 64-bit integer as a multiplier; r=froydnj 2014-05-30 09:45:39 +09:00
Ehsan Akhgari
6011b07362 Bug 1015430 - Fix more XPCOM constructors to clarify whether they should be explicit; r=froydnj 2014-05-25 21:16:01 -04:00
Mats Palmgren
257e69aae5 Bug 1009263 - Add nsCheapSets::Clear() method that removes all entries and return it to minimal size in terms of memory use. r=bsmedberg 2014-05-17 23:10:53 +00:00
Andrew McCreight
a95191e7f0 Bug 1008420, part 2 - Split out a refcountless nsArray base class. r=bsmedberg 2014-05-15 09:52:58 -07:00
Andrew McCreight
57f3f97385 Bug 1008420, part 1 - Delete trailing whitespace from nsArray. r=bsmedberg 2014-05-15 09:52:58 -07:00
Andrew McCreight
6b94f1bb01 Bug 971264 - Remove nsHashtable. r=bsmedberg 2014-05-15 09:52:57 -07:00