Commit Graph

557 Commits

Author SHA1 Message Date
Brian Birtles
1002f32575 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
eea6299531 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
050c115984 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
7455a9e143 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
8373a08d48 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
18bd61d826 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
7a95a86f7b 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
0efe65c4fb 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
059abfd249 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
9ee24502f8 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
a0610aa3c0 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
3a40d75a24 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
c15b5fcb49 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
fb59246d13 Bug 1049694: Remove unused mozilla::CharTokenizer. r=froydnj 2014-08-08 11:11:33 -07:00
Nicholas Nethercote
ffea0fdbca 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
63c39263d1 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
d865feac08 Bug 1048239 - Fix more bad implicit constructors in XPCOM; r=froydnj 2014-08-05 09:36:32 -04:00
Nicholas Nethercote
c2231123fa Bug 1047220 - Shrink the static atoms table. r=bz.
--HG--
extra : rebase_source : a7f8d54cce7f20d784371348f0d0cabdacf43c0a
2014-07-31 22:57:13 -07:00
Nicholas Nethercote
036f361b0a 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
c068c6c4e2 Bug 1046529 (part 1) - Split and simplify AtomTableKey's constructors. r=bz. 2014-07-30 23:22:40 -07:00
Nicholas Nethercote
bb5b39204b 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
38af3acc04 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
4c9c55eba5 Bug 1045065 - Fix some bad implicit constructors in xpcom; r=froydnj 2014-07-28 13:19:06 -04:00
Birunthan Mohanathas
1fc653d7cb Bug 1035884 - Follow-up: Use typedef for ns(C){CharSeparated,Whitespace}Tokenizer. r=froydnj 2014-07-27 08:52:52 -07:00
Birunthan Mohanathas
079b2e7778 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
9ae3c48776 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
5ee9096660 Bug 1035884 - Template-ify nsWhitespaceTokenizer to remove duplicate code. r=froydnj 2014-07-18 14:52:29 -07:00
Birunthan Mohanathas
c708f3df00 Bug 1035884 - Template-ify nsCharSeparatedTokenizer to remove duplicate code. r=froydnj 2014-07-18 14:52:29 -07:00
Jan de Mooij
e854923edc 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
9e7f86fb41 Backed out changeset 110e44b996f8 (bug 1034627) for Valgrind Testfailures on a CLOSED TREE 2014-07-11 11:00:21 +02:00
Jan de Mooij
4b964ec7f4 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
a951c69754 Bug 1022456 - Convert xpcom/ds/ to Gecko style. r=froydnj 2014-07-09 08:15:21 -07:00
Birunthan Mohanathas
a13bd78409 Bug 1035509 - Remove unused xpcom/ds/nsManifestLineReader.h. r=froydnj 2014-07-09 08:15:20 -07:00
Birunthan Mohanathas
03c0b159b2 Bug 1035509 - Remove unused xpcom/ds/StringBuilder.h. r=froydnj 2014-07-09 08:14:43 -07:00
Benoit Jacob
edbefa40b5 Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Wes Kocher
5414ff6193 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
027818fcb7 Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Brian Birtles
8c5dba9bf8 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
bb9d51e11e 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
388f4b8402 Bug 1004365 part 3b.1 - Add % operator to TimeDuration; r=froydnj 2014-06-11 14:19:08 +09:00
Brian Birtles
4f07dbc313 Bug 1004365 part 2 - Add TimeDuration != operator; r=froydnj 2014-06-11 14:19:07 +09:00
Ehsan Akhgari
ec1fd6e139 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
d182a3b471 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
915297325e Bug 1015664. Part 1: Remove NS_HIDDEN_() usage. r=bsmedberg 2014-06-03 00:08:21 +12:00
Brian Birtles
ac0d6ba61a 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
a6264cb1ae 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
164b7824a1 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
1a4ed8fb12 Bug 1008420, part 2 - Split out a refcountless nsArray base class. r=bsmedberg 2014-05-15 09:52:58 -07:00
Andrew McCreight
3d4c19a17a Bug 1008420, part 1 - Delete trailing whitespace from nsArray. r=bsmedberg 2014-05-15 09:52:58 -07:00
Andrew McCreight
27f0eee9f8 Bug 971264 - Remove nsHashtable. r=bsmedberg 2014-05-15 09:52:57 -07:00