Commit Graph

4424 Commits

Author SHA1 Message Date
Andrew McCreight
994059dfef Bug 937751, part 4 - Incrementalize nsCycleCollector::Collect. r=smaug
This patch makes it so that Collect takes a time budget that describes
how much longer the collection can be run for. Then we run the current phase.
Once this is done, we check whether we have exceeded our time budget or
if we have finished a collection. If neither of those have happened, we
run the cycle collector some more.

If we're a manually triggered CC, and we were in the middle of an ICC when
the CC started, then once the current CC is complete, we start a new CC
immediately. This is needed to ensure that a manually specified listener
is used, and to ensure that any garbage objects the caller expects to be
collected are in fact collected.

Note that in this patch we are always passing in an unlimited budget to
Collect, so cycle collections will always be run to completion.
2013-12-03 10:47:47 -08:00
Andrew McCreight
5076bf4519 Bug 937751, part 3 - Protect against reentrancy with when incrementally CCing. r=smaug
Cycle collection protects against reentrancy by setting a flag to indicate a collection
is in progress. With synchronous CC, it is okay to set this in BeginCollection, and
clear it in CleanupAfterCollection. With ICC, this must be set and cleared in every
slice, so I moved the fixing of it to Collect.  I also changed the name of the variable,
because we can be in the middle of an ICC without the CC being actively running,
and it is only the latter we are worried about here.
2013-12-03 10:47:47 -08:00
Andrew McCreight
4411a6d49f Bug 937751, part 1 - Add and set incremental cycle collection phases. r=smaug 2013-12-03 10:47:46 -08:00
Mike Hommey
bf60896454 Bug 943728 - Replace double quotes with single quotes in Makefiles (or remove them when it makes sense). r=mshal 2013-12-03 06:34:21 +09:00
Andrew McCreight
744b82250b Bug 938407 - Null check FinishReportingCallback::mFinishDumping. r=froydnj 2013-12-02 13:11:43 -08:00
Jan Beich
235cf51f70 Bug 945046 - Implement private and vsize-max-contiguous reporters on FreeBSD. r=njn, r=glandium 2013-12-02 12:51:27 -05:00
Jan Beich
55c4f8b847 Bug 945046 - Move private, vsize-max-contiguous class implementation under their own ifdef. r=njn 2013-12-02 12:51:26 -05:00
Aaron Klotz
17bcff457a Bug 944529: Obtain HDD info for GRE path and Windows directory; r=froydnj 2013-12-02 10:41:44 -07:00
Ryan VanderMeulen
2866421e0f Merge m-c to inbound. 2013-12-02 10:34:41 -05:00
Carsten "Tomcat" Book
eaab8af805 merge mozilla-inbound to mozilla-central 2013-12-02 12:41:55 +01:00
Ehsan Akhgari
76f23ad063 Bug 945118 - Build more of XPCOM in unified mode; r=glandium 2013-12-01 10:47:52 -05:00
Brian R. Bondy
47095a68bd Bug 944434 - Updates from Desktop launch Metro to perform the update. r=emtwo 2013-11-29 07:24:55 -05:00
Carsten "Tomcat" Book
caa77e8a92 merge fx-team to mozilla-central 2013-11-29 10:13:09 +01:00
Makoto Kato
ed24a20324 Bug 942645 - Remove old OS_RELEAE reference. r=glandium 2013-11-29 13:52:22 +09:00
Masatoshi Kimura
563353ee8f Bug 942402 - Add version test functions for Thunderbird. r=jimm 2013-12-03 00:01:48 +09:00
Landry Breuil
e9ae7af602 Bug 944410 - add missing #include <stdarg.h> for va_list on OpenBSD after bug 942483 r=bgirard 2013-11-30 13:48:34 +01:00
Marina Samuel
4d00f56497 Bug 934032 - Add View on Metro feature to Desktop Firefox in Australis. r=bbondy 2013-11-19 13:06:58 -05:00
Catalin Iacob
e961122fe2 Bug 819839 - Part 1 - Allow NS_StackWalk to be called during static initialization on Windows. r=ehsan 2013-11-29 16:08:43 +01:00
Mike Hommey
9245936f8b Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-27 22:55:07 +09:00
Nicholas Nethercote
d27c541046 Bug 936964 (part 3, attempt 2) - Make nsCycleCollector ref-counted. r=mccr8.
--HG--
extra : rebase_source : ebda496b8cba0464280eb0dc7bae9aca137e2e25
2013-11-25 15:57:53 -08:00
Nicholas Nethercote
b467b2a1c4 Bug 943660 (attempt 2) - Remove nsIMemoryReporter::name, because it's (a) unused and (b) a bad idea. r=mccr8.
--HG--
extra : rebase_source : 4381c3c424e34198b83c45fa0ac0d9a670bab2b8
2013-11-26 18:38:50 -08:00
Mike Hommey
2b828323f2 Backout changeset 3fd4b546eed4 (bug 874266) and changeset a35d2e3a872f (bug 942043) for ASAN build bustage and Windows test bustage
--HG--
extra : amend_source : f20d09aeff1c8b5cbd0f1d24c7ce04e86f3aed1d
2013-11-28 14:24:05 +09:00
Nicholas Nethercote
77419f6a47 Bug 936964 (part 7, attempt 2) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
* * *
Bug 936964 (part 7b) - Fix a use-after-free found by ASan.

--HG--
extra : rebase_source : d38ab6b63e9d576773baf8e55fa4f7182c33915e
2013-11-07 16:35:30 +11:00
Mike Hommey
d210f8ff00 Bug 874266 - Move all DEFINES that can be moved to moz.build. r=mshal 2013-11-28 13:08:16 +09:00
Ehsan Akhgari
c3970a73fb Backed out 9 changesets (bug 943660, bug 936964) because of ASAN use-after-free crashes on browser-chrome and mochitest-other
Backed out changeset 85486c4aa3d8 (bug 936964)
Backed out changeset 25312eb71998 (bug 936964)
Backed out changeset 6dbb8333960c (bug 936964)
Backed out changeset da6465ad476f (bug 936964)
Backed out changeset a87ffc992f38 (bug 936964)
Backed out changeset 4ae3a61182db (bug 936964)
Backed out changeset 34e9c3137804 (bug 936964)
Backed out changeset fd1459e71585 (bug 936964)
Backed out changeset 3e8a701d8bdc (bug 943660)

Landed on a CLOSED TREE

--HG--
rename : content/canvas/src/WebGLMemoryTracker.h => content/canvas/src/WebGLMemoryReporterWrapper.h
2013-11-27 20:05:00 -05:00
Nicholas Nethercote
78e4d6490d Bug 936964 (part 7) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
--HG--
rename : content/canvas/src/WebGLMemoryReporterWrapper.h => content/canvas/src/WebGLMemoryTracker.h
extra : rebase_source : 611e8d35907959b163aeced1c4ffe1d265048fe6
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
34fc4ee486 Bug 936964 (part 3) - Make nsCycleCollector ref-counted. r=mccr8.
--HG--
extra : rebase_source : f781c197b20354eda4622d436d5ef3429ce2481b
2013-11-25 15:57:53 -08:00
Nicholas Nethercote
e5c372ab44 Bug 943660 - Remove nsIMemoryReporter::name, because it's (a) unused and (b) a bad idea. r=mccr8.
--HG--
extra : rebase_source : f2ccff7972d7161e2290fd3db70463524c55f230
2013-11-26 18:38:50 -08:00
Dan Minor
69e7d3a78d Bug 943390 - Unit test TestTArray.cpp fails on Windows XP opt builds; r=froydnj 2013-11-29 12:48:08 -05:00
Bobby Holley
7a71089e5d Bug 911303 - Remove manual Destroy() routine from CycleCollectedJSRuntime. r=billm 2013-11-27 10:10:25 -08:00
Jacek Caban
db001e45e0 Bug 928351 - Char16.h and xpcom/strings/public parts r=ehsan,Waldo 2013-11-27 14:40:54 +01:00
Markus Stange
f0c633ccf9 Bug 924103 - Add a FilterDescription data structure and code that can create FilterNodes from it. r=roc 2013-11-27 12:25:28 +01:00
Mike Hommey
c35f2d3106 Bug 943197 - Remove useless -DIMPL_LIBXUL. r=mshal 2013-11-27 17:13:05 +09:00
Andrew McCreight
82aff86f1c Bug 937966 - Clean up scan safe assertion in Suspect. r=smaug 2013-11-26 17:30:46 -05:00
Andrew McCreight
a1a437b34d Bug 931738 - Remove nsPurpleBufferEntry from nsISupportsImpl.h. r=smaug 2013-11-26 14:29:59 -05:00
Daniel Holbert
621989b424 Bug 943238: Mark xpcom/io as FAIL_ON_WARNINGS. r=froydnj 2013-11-26 09:53:54 -08:00
Daniel Holbert
09205b59c4 Bug 943391: Use MOZ_THIS_IN_INITIALIZER_LIST to silence MSVC warning C4355 in nsPipe3.cpp. r=froydnj 2013-11-26 09:42:59 -08:00
Daniel Holbert
388f79a1c8 Bug 943235: undef LOG at the end of nsStorageStream.cpp, to prevent it from polluting other .cpp files and triggering "redefined" build warnings when we build in unified mode. r=froydnj 2013-11-26 09:42:58 -08:00
Ehsan Akhgari
60735d7532 Bug 943035 - Use fallible allocation in nsScriptableInputStream::Read; r=bsmedberg 2013-11-26 11:52:48 -05:00
Ehsan Akhgari
a76144f248 Bug 942635 - Build dom/ipc in unified mode; r=bzbarsky 2013-11-26 11:39:19 -05:00
Benjamin Smedberg
041396b09d Bug 938794 - Annotate OOM size as infallible string or data structures abort, r=froydnj
--HG--
extra : rebase_source : f84278dfbba92c6d75458b525a559b6f8598500f
2013-11-25 15:06:17 -05:00
Chris Peterson
842152c206 Bug 942400 - Fix -Wunused-variable warning in xpcom/io/nsMultiplexInputStream.cpp. r=nfroyd 2013-11-22 19:39:47 -08:00
Birunthan Mohanathas
0816e609ee Bug 784739 - Switch from NULL to nullptr in miscellaneous directories; r=ehsan
--HG--
extra : rebase_source : 8ace754e117a12e2599f5a90030f13a3a7064fed
2013-11-25 14:02:47 -05:00
Jan Beich
b25abb6817 Bug 942488 - Don't report pseudo-stacks without SPS profiler. r=nchen 2013-11-25 09:24:00 -05:00
Benoit Girard
f8fd653be7 Bug 942483 - Port paint-dumping to android/b2g. r=gal 2013-11-23 17:44:18 -05:00
Ehsan Akhgari
5a56056193 Bug 942489 - Deunify more files that are caught by bug 941854; r=BenWa 2013-11-24 01:29:24 -05:00
Mike Hommey
b39418250a Bug 941450 - Add some GENERATED_FILES to moz.build. r=gps 2013-11-22 08:16:18 +09:00
Jim Chen
9d818e8444 Bug 932865 - Collect thread hang stats in BackgroundHangMonitor; r=froydnj 2013-11-22 14:17:31 -05:00
Jim Chen
c9e25f4004 Bug 932865 - Record inactive thread hang stats inside telemetry; r=vladan 2013-11-22 14:17:31 -05:00
Jim Chen
4b4ea979e2 Bug 932865 - Add way for telemetry to iterate over active threads; r=froydnj 2013-11-22 14:17:31 -05:00
Jim Chen
8a6972b958 Bug 935092 - Add ThreadStackHelper to get a thread's pesudo-stack; r=BenWa 2013-11-22 14:17:30 -05:00
Jim Chen
1822d440f4 Bug 909974 - Stop the monitor thread when the BackgroundHangManager instance is destroyed; r=froydnj 2013-11-22 14:17:30 -05:00
Jim Chen
9ec3326fc9 Bug 909974 - Let monitor thread detect hangs in addition to permahangs; r=froydnj 2013-11-22 14:17:29 -05:00
Jim Chen
c64112dbde Bug 909974 - Add a hang monitor for background threads; r=froydnj 2013-11-22 14:17:29 -05:00
Ed Morley
dd12c93265 Backed out changeset 1eb6ceed2cda (bug 938437) on suspicion of causing WinXP debug jetpack failures on a CLOSED TREE 2013-11-22 16:00:32 +00:00
Ed Morley
0e1036028c Backed out changeset c30371a66429 (bug 941450) 2013-11-22 15:59:22 +00:00
Ryan VanderMeulen
ae7c01efb4 Merge m-c to inbound. 2013-12-06 16:13:37 -05:00
Bobby Holley
f5cb1b3082 Bug 937317 - Implement basic script settings stack machinery. r=bz 2013-12-06 12:01:41 -08:00
Chris Peterson
d98938d032 Bug 945613 - Part 3: #ifdef pragma for gcc >= 4.7.0. r=ehsan 2013-12-06 09:47:28 -08:00
Andrew McCreight
5900c0c4d6 Bug 937766, part 5 - Implement PrepareForGarbageCollection. r=smaug
Running the garbage collector can cause objects in the CC graph to
die, so just finish off an incremental cycle collection when we
start a GC.
2013-12-06 10:17:20 -08:00
Andrew McCreight
d1b570f76d Bug 937766, part 4 - Add GCGraph::IsEmpty method. r=smaug 2013-12-06 10:17:20 -08:00
Andrew McCreight
40ad83c922 Bug 937766, part 3 - Add mParticipant null checks. r=smaug
When an object dies during an incremental cycle collection, we null out
its mParticipant, so we must add various null checks to avoid crashing
when we reach the CC graph representation of an object that has died.
2013-12-06 10:17:20 -08:00
Andrew McCreight
b7c15b3db2 Bug 937766, part 2 - Make SnowWhiteKiller remove dying things from the CC graph. r=smaug
If we purge snow white objects while ICC is in progress, we need to
make sure to remove anything from the CC graph to avoid dangling pointers.
We don't need to do that after shutdown.
2013-12-06 10:17:20 -08:00
Mike Hommey
f6b8ef93a4 Bug 941450 - Add some GENERATED_FILES to moz.build. r=gps 2013-11-22 08:16:18 +09:00
Mike Hommey
99fc7c7312 Bug 938437 - Replace nsStaticXULComponents.cpp with smart use of sections. r=bsmedberg,irc-r=decoder,r=nfroyd 2013-11-19 13:45:31 +09:00
Masatoshi Kimura
b3fb84e281 Bug 925599 - Replace GetVersion() uses. r=bsmedberg 2013-11-22 12:35:42 +09:00
Wes Kocher
e634acaaaf Merge m-c to inbound 2013-11-21 19:18:18 -08:00
Wes Kocher
2db30ae116 Merge fx-team to m-c 2013-11-21 19:16:50 -08:00
Ehsan Akhgari
0b5494715b Bug 941739 - Print the current process and thread information on XPCOM assertions and string leaks stats; r=froydnj 2013-11-21 14:17:35 -05:00
Ryan VanderMeulen
bef0cc03d8 Merge m-c to fx-team. 2013-11-21 15:55:03 -05:00
Ryan VanderMeulen
94ddc2e1d9 Merge m-c to inbound. 2013-11-21 11:37:10 -05:00
Carsten "Tomcat" Book
9f47cb96d7 merge mozilla-inbound to mozilla-central 2013-11-21 14:20:21 +01:00
Nicholas Nethercote
c7b9e03143 Bug 940069 - Backout a temporary debugging printf that runs on --enable-valgrind builds only, because it has served its purpose. r=me. 2013-11-20 00:27:00 -08:00
Alexander Surkov
7bb2451052 Bug 935698 - isolate nsIAccessibleValue implementation into separate class, r=tbsaunde 2013-11-19 16:01:15 -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
ISHIKAWA, Chiaki
f4e80246c7 Bug 936987 - Propagate the error code of PR_Close() against a file under CIFS-share under Linux. r=froydnj
(Network error causes the file share to fail, and read()/close() and possibly write() can return network-related error. close() error was not caught before.)
2013-11-19 14:56:58 -05:00
Andrew McCreight
319fed2c0e Bug 935721, part 10 - Separate nsCycleCollector_collect and nsCycleCollector_scheduledCollect. r=smaug 2013-11-20 14:35:17 -08:00
Andrew McCreight
65d5a7ad90 Bug 935721, part 9 - Move mPtrToNodeMap into GCGraph. r=smaug
With ICC, we may have to remove things from the graph after we have finished building
the graph, so move the mapping to graph addresses into the graph itself to create a
more self-contained structure.
2013-11-20 14:35:17 -08:00
Andrew McCreight
06ae914761 Bug 935721, part 8 - Add a reference to the graph to the graph builder. r=smaug
This moves towards letting the CC graph outlive the builder.
2013-11-20 14:35:16 -08:00
Andrew McCreight
77917883a8 Bug 935721, part 7 - Inline PrepareForCollection into BeginCollection. r=smaug
PrepareForCollection is trivial now, so just inline it.
2013-11-20 14:35:16 -08:00
Andrew McCreight
3eed280708 Bug 935721, part 5 - Invert the control flow of CycleCollectNow's pre- and post-collection work, add CCResults as a field on the CC. r=smaug
nsJSEnvironment::CycleCollectNow does work before and after a CC runs. With ICC, nsJSEnv won't
know where in the CC when a CC is about to begin or end, so this patch reorganizes that work
into two separate callback hooks.  This requires adding a new struct, CycleCollectorStats, to
hold data nsJSEnv needs between the two calls.

Rather than trying to pass around a pointer to a results structure, this patch just adds
it to the nsCycleCollector struct, and always stores them. The results are passed back
to the end CC callback.
2013-11-20 14:35:16 -08:00
Andrew McCreight
2356ab9a2d Bug 935721, part 4 - Allocate white nodes array in CollectWhite. r=smaug
The white nodes array is only used in CollectWhite, so just allocate it there.
2013-11-20 14:35:16 -08:00
Andrew McCreight
df690c6812 Bug 935721, part 3 - Use RAII to set mScanInProgress, hoist out MarkRoots and ScanRoots. r=smaug
With ICC, mScanInProgress gets set and cleared a bunch of times so add an RAII class to turn
it on when we're doing stuff and clear it when we're not.

With that in place, we can easily move MarkRoots and ScanRoots out of BeginCollection
in preparation for making them separate phases in ICC.
2013-11-20 14:35:16 -08:00
Andrew McCreight
c9b8e24ea3 Bug 935721, part 2 - Allocate GCGraphBuilder on the heap. r=smaug
With ICC, the graph builder must persist across invocations of the CC,
so store it on the heap.
2013-11-20 14:35:15 -08:00
Andrew McCreight
7b822b21b0 Bug 935721, part 1 - Store the listener pointer on the nsCycleCollector data structure. r=smaug
With ICC, the listener must persist across invocations of the CC, so store it on the CC.
2013-11-20 14:35:15 -08:00
Benjamin Smedberg
4e3ab778f0 Bug 672843 part D - make NS_ERROR_INVALID_POINTER an alias of NS_ERROR_INVALID_ARG, r=froydnj 2013-11-19 16:27:37 -05:00
Benjamin Smedberg
9bfc4e98e3 Bug 672843 part C - convert most of XPCOM except for xpcom/tests, r=vdjeric 2013-11-19 16:27:37 -05:00
Benjamin Smedberg
f72af0bb16 Bug 672843 part B - Remove NS_ENSURE_PROPER_AGGREGATION, r=froydnj 2013-11-19 16:27:36 -05:00
Benjamin Smedberg
5f71d47853 Bug 672843 part A - Create the new macro NS_WARN_IF and deprecate NS_ENSURE_* in favor of the explicit warning/return style. Also localize each macro so that it's debug and non-debug versions are local in the file, because that makes it easier for new contributors to understand. r=froydnj sr=jst 2013-11-19 16:27:36 -05:00
Ehsan Akhgari
6053a45785 Follow-up to bug 936912: Fix a compiler warning 2013-11-20 16:01:59 -05:00
Ehsan Akhgari
90fa786c75 Bug 941866 - Exclude files which rely on the known bad patterns from unified builds; r=BenWa 2013-11-21 16:36:59 -05:00
Ehsan Akhgari
6f773eb0a9 Bug 941405 - Remove the usages of the register keyword from XPCOM; r=froydnj 2013-11-21 10:42:40 -05:00
Ryan VanderMeulen
6a90626b1d Backed out changeset 4887ddabba31 (bug 939231) for mochitest hangs.
CLOSED TREE
2013-11-21 09:39:38 -05:00
Chris Kitching
7144e8c767 Bug 913985: Part 5 - Refactor the Bridge to use the generated code. r=kats 2013-11-12 10:41:01 -08:00
Ryan VanderMeulen
f613a3dd00 Merge inbound to m-c. 2013-11-19 13:21:57 -05:00
James Kitchener
fcb5bd2a1d Bug 936886 - Account for possibility of non-null terminated strings in nsWindowsRegKey::ReadStringValue(). r=dmajor 2013-11-19 09:09:41 -05:00
Nicholas Nethercote
6f6ecd89ad Bug 940069 - Land a temporary debugging printf that runs on --enable-valgrind builds only, because Valgrind runs aren't available on tryserver. r=me. 2013-11-18 23:13:15 -08:00
Mike Hommey
a65383e1e9 Bug 939632 - Remove LIBRARY_NAME for leaf libraries. r=gps
Landing on a CLOSED TREE.
2013-11-19 11:50:54 +09:00
Mike Hommey
8ceb917350 Bug 939074 - Remove most LIBXUL_LIBRARY. rs=gps 2013-11-19 11:48:10 +09:00
Mike Hommey
e42fd39b2e Bug 939071 - Kill SHORT_LIBNAME. r=ted 2013-11-19 11:47:47 +09:00