Commit Graph

576 Commits

Author SHA1 Message Date
Benoit Jacob
85b7664705 Bug 934568 - Make cycle collector OOM assertions fatal in debug builds. r=mccr8 2013-10-27 07:51:31 -04:00
Jonas Finnemann Jensen
cf099c0754 Bug 902587 - Part 2A: Refactor late-write-checks as client of IO Interposer. r=BenWa 2013-11-05 07:45:20 -05:00
Andrew McCreight
2a8aa49cb4 Bug 928647 - Remove CycleCollectedRuntime::mObjectToUnlink. r=smaug 2013-10-19 08:59:10 -07:00
Olli Pettay
9ff32ee448 Bug 927813 - Some micro-optimizations for Suspect, r=mccr8 2013-10-17 17:05:13 +03:00
Birunthan Mohanathas
52e24d677b Bug 784739 - Switch from NULL to nullptr in xpcom/ (1/3); r=ehsan 2013-10-10 16:41:00 -04:00
Thinker Lee
d4c71839a3 Bug 771765 - Support template content process, part 6: support re-creation of the threads created in the template process. r=khuey, r=jorendorff
The threads that are frozen/recreated include:
* ImageBridgeChildThread.
* Image decoding thread pool.
* IPC thread (checkpointed, but not frozen).
* GC Helper thread.
* XPC runtime watchdog thread.
* Socket transport service thread/thread pool.
* Memory pressure watcher.
* Timer thread.
* DOM promise worker.
2013-06-03 18:14:42 +08:00
Andrew McCreight
dfac8e112b Bug 915488 - Make CC participant's Root, Unroot and Unlink methods infallible. r=smaug 2013-09-11 18:57:53 -07:00
Ehsan Akhgari
35f4093831 Bug 917885 - Minimize the #includes in xpcom/base; r=bsmedberg 2013-09-19 14:29:31 -04:00
Ehsan Akhgari
fe85b6b42b Backed out changeset a8d6973e5743 (bug 917885) because I pushed the wrong patch 2013-09-19 14:27:35 -04:00
Ehsan Akhgari
4bbb07e34d Bug 917885 - Minimize the #includes in xpcom/base; r=bsmedberg 2013-09-19 14:12:56 -04:00
Nicholas Nethercote
c7fbf6a742 Bug 910517 (3rd attempt) - Remove nsIMemoryReporter, and rename nsIMemoryMultiReporter as nsIMemoryReporter. r=mmcr8. 2013-08-27 16:24:51 -07:00
Andrew McCreight
5d415564c4 Bug 913666, part 5 - Rename aListener to aManualListener. r=smaug
The name "aListener" is not very descriptive, and with the previous patch, it is only
used to pass in a manually-specified listener that was passed in to CycleCollectNow,
so rename things.
2013-09-10 16:33:41 -07:00
Andrew McCreight
0b7e317041 Bug 913666, part 4 - Sink free floating code from nsCycleCollector::Collect into BeginCollection. r=smaug
The hg diff for this commit is terrible, but all it is doing is taking the code
in nsCycleCollector::Collect from after PrepareForCollection through BeginCollection
and moving it into BeginCollection.
2013-09-10 16:33:41 -07:00
Andrew McCreight
07a7f3544c Bug 913666, part 3 - Sink cycle collector listener selection into Collect. r=smaug
Move the two places we check global flags to decide if we want to use a listener, even if we
aren't passed in one.  A later patch renames aListener to aForcedListener to make it less
confusing.
2013-09-10 16:33:40 -07:00
Andrew McCreight
3546517893 Bug 913666, part 2 - Log cycle collector garbage at the same time we log roots. r=smaug
There's no reason to wait until CollectWhite to record what is garbage, and with incremental CC
we'll get more accurate logging by logging right away, rather than waiting until later when an
object may have gone away for some other reason.
2013-09-10 16:33:40 -07:00
Andrew McCreight
b433b40e12 Bug 913666, part 1 - Move cycle collector root logging into ScanRoots. r=smaug 2013-09-10 16:33:39 -07:00
Andrew McCreight
902685affd Bug 913881, part 6 - Measure weak map representations in the cycle collector graph. r=njn
Contrary to the comment here, I'm pretty sure this needs to be measured. mWeakMaps
is an array of little structs. Of course, in practice I doubt this amounts to anything.
2013-09-10 08:56:36 -07:00
Andrew McCreight
bda99d54a4 Bug 913881, part 5 - Assert for freeing snow white during cycle collector scanning. r=smaug
If you call FreeSnowWhite when scanning is true, then objects that get released won't be added to the purple buffer, and you can get leaks.
2013-09-10 08:56:36 -07:00
Andrew McCreight
d5271b9c36 Bug 913881, part 4 - Change nsCycleCollector::ClearGraph to GCGraph::Clear. r=smaug
There's no reason I can see to have this in nsCC instead of GCGraph.
2013-09-10 08:56:36 -07:00
Andrew McCreight
601ac68d0e Bug 913881, part 3 - Fix argument name for GCGraphBuilder::AddNode. r=smaug 2013-09-10 08:56:35 -07:00
Andrew McCreight
9c520edff5 Bug 913881, part 2 - Make a bunch of nsCycleCollector methods private. r=smaug 2013-09-10 08:56:35 -07:00
Andrew McCreight
98f069b77a Bug 913881, part 1 - Remove unused method nsCycleCollector::Runtime. r=smaug 2013-09-10 08:56:35 -07:00
Andrew McCreight
af411817cd Bug 913527, part 3 - Check for collection in progress in Collect. r=smaug
Moving this to the top level simplifies dealing with PrepareForCollection a bit.
2013-09-10 08:56:34 -07:00
Andrew McCreight
33e35099da Bug 913527, part 2 - Remove empty CC graph optimization. r=smaug
This looks like a dubious optimization to skip most of a CC when the graph
is empty, dating from the dawn of the CC, but I doubt it is ever triggered
nowadays.
2013-09-10 08:56:34 -07:00
Andrew McCreight
51892e4031 Bug 913527, part 1 - Get rid of FinishCollection. r=smaug
This can just be inlined now, with the cleanup parts moved into CleanupAfterCollection.
2013-09-10 08:56:34 -07:00
Andrew McCreight
f676b3681f Bug 911829 - Separate main thread and worker cycle collector telemetry. r=smaug 2013-09-10 08:29:45 -07:00
Kyle Huey
72ac69366e Bug 911258: Part 4 - Refactor exception implementations. r=bz 2013-09-08 20:28:50 -07:00
Andrew McCreight
360af07238 Bug 913130, part 4 - Replace body of ShutdownCollect loop with Collect. r=smaug 2013-09-06 16:17:53 -07:00
Andrew McCreight
23ae22693a Bug 913130, part 3 - Run {PrepareFor,CleanupAfter} every iteration of ShutdownCollect. r=smaug 2013-09-06 16:17:03 -07:00
Andrew McCreight
1c7df7e692 Bug 913130, part 2 - Give Collect and ShutdownCollect more consistent ordering. r=smaug 2013-09-06 16:16:45 -07:00
Andrew McCreight
1c95521d7c Bug 913130, part 1 - Modify nsCycleCollector::Collect to allow it to be used at shutdown. r=smaug 2013-09-06 16:15:10 -07:00
Andrew McCreight
6c46f9bae3 Bug 913080 - Make GCGraphBuilder's hash table initialization infallible. r=smaug 2013-09-06 13:42:27 -07:00
Andrew McCreight
5d5dcd7aa3 Bug 911233, part 3 - Add more CheckThreadSafety calls to the cycle collector. r=khuey 2013-09-06 13:41:42 -07:00
Andrew McCreight
077a3b9691 Bug 911233, part 2 - Inline SelectPurple. r=smaug 2013-09-06 13:41:11 -07:00
Andrew McCreight
ea2fa6cd25 Bug 911233, part 1 - Minor cycle collector cleanups. r=smaug 2013-09-06 13:40:34 -07:00
Andrew McCreight
cee0d6bfae Bug 883920 - use templates for {Hold,Drop}JSObjects. r=peterv 2013-08-16 13:10:17 -07:00
Olli Pettay
5f4f7d92cf Bug 910797, make Event.isTrusted to work in workers, r=khuey 2013-08-30 12:47:19 +03:00
Landry Breuil
e34b1caa64 Bug 905920 - Fix build on platforms without SPS profiler r=khuey 2013-08-20 13:48:22 +02:00
Andrew McCreight
e3e62cf63d Bug 903524 - Rename TestJSHolder to IsJSHolder. r=smaug 2013-08-15 10:29:02 -07:00
Kyle Huey
cad78dd5fa Bug 901630: Remove support for the cc thread. r=mccr8 2013-08-13 10:45:32 -07:00
Andrew McCreight
9ddee57a75 Bug 901756 - Fix a few nits in nsCycleCollector.cpp r=khuey
Remove an unused forward declaration, and an unused field
2013-08-05 17:04:47 -07:00
Kyle Huey
7801e2b85f Bug 845545: Part 4 - Create a worker implementation of CycleCollectedJSRuntime. r=mccr8,bent 2013-08-03 16:55:40 -07:00
Kyle Huey
6e8f198824 Bug 845545: Part 3 - Give the CycleCollectedJSRuntime more control over
SnowWhite. r=smaug
2013-08-03 16:55:39 -07:00
Kyle Huey
e647d7ad59 Bug 845545: Part 1 - Fix heap dumping to work off the main thread. r=mccr8 2013-08-03 16:55:39 -07:00
Andrew McCreight
5b6404e3de Bug 887903 - Non-fatally assert when nsDeque fails due to OOM during scanning in CC. r=smaug 2013-05-28 17:42:13 -07:00
Ehsan Akhgari
1ab9c7bcb4 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])
2013-07-18 13:59:53 -04:00
Ehsan Akhgari
6d396d8bcb Bug 872127 - Part 2: Replace mozilla/StandardInteger.h with stdint.h; r=Waldo,ted 2013-07-30 10:25:31 -04:00
Olli Pettay
cec7749fcc Bug 897433 - Telemetry for SnowWhite and more async SnowWhite freeing (patch v4), r=mccr8 2013-07-27 13:48:45 +03:00
Andrew McCreight
49c914a82d Bug 692226 - Record weak map entries in the cycle collector log. r=smaug 2013-07-26 08:12:51 -07:00
Ryan VanderMeulen
3f0186df75 Backed out changeset 300f5b7d72e1 (bug 897433) for intermittent Linux dromaeo crashes. 2013-07-25 21:18:20 -04:00