Commit Graph

528 Commits

Author SHA1 Message Date
Nicholas Nethercote
eda870fe92 Bug 1120476 (part 3) - Remove PLDHashTable::data. r=froydnj. 2015-01-13 16:42:13 -08:00
Andrew McCreight
755c13f279 Backout bug 1052793 for exposing bad decommitting behavior for compartmental GCs. 2015-01-08 09:54:13 -08:00
Michael Pruett
cdea6d623f Bug 1118024 - Add explicit PL_DHashTable{Add,Lookup,Remove} functions. r=nfroyd 2015-01-05 20:26:50 -06:00
Ehsan Akhgari
ad34fcfc86 Bug 1117035 - Mark virtual overridden functions as MOZ_OVERRIDE in XPCOM; r=froydnj 2015-01-05 11:25:41 -05:00
Andrew McCreight
71e7b2fad7 Bug 1109928, part 6 - Define CCGraphBuilder::SetFirstChild() for consistency. r=smaug 2014-12-20 13:35:24 -05:00
Andrew McCreight
c6b526cde5 Bug 1109928, part 5 - Inline CCGraphBuilder::DescribeNode because it is silly. r=smaug 2014-12-20 13:35:24 -05:00
Andrew McCreight
50b1fe524b Bug 1109928, part 4 - Make CCBuilder::AddNode private by adding a new AddPurpleRoot method. r=smaug 2014-12-20 13:35:23 -05:00
Andrew McCreight
899322186e Bug 1109928, part 3 - Make CCGraphBuilder::AddWeakMapNode and ::NoteJSChild methods private. r=smaug 2014-12-20 13:35:23 -05:00
Andrew McCreight
7197764c51 Bug 1109928, part 2 - Inline some CCGraphBuilder methods now that the builder is doing the building. r=smaug
Also, make SetLastChild a private method defined in the class declaration.
2014-12-20 13:35:23 -05:00
Andrew McCreight
3c680c6249 Bug 1109928, part 1 - Move graph building inside CCGraphBuilder. r=smaug
This lets us hide a lot of the internal state of graph building from other classes.
2014-12-20 13:35:23 -05:00
Terrence Cole
8765b633f5 Bug 1105069 - Part 21: Remove AsCell in preference of GCCellPtr; r=jonco, r=mccr8 2014-12-14 08:27:52 -08:00
Terrence Cole
f2467a2fa0 Bug 1105069 - Part 17: Convert xpc_IsGrayGCThing to GCCellPtr; r=mccr8, j=jonco 2014-12-05 09:38:34 -08:00
Terrence Cole
3bb2ef08f9 Bug 1105069 - Part 15: Convert xpc_GCThingIsGrayCCThing to GCCellPtr; r=mccr8, r=jonco 2014-12-09 16:22:51 -08:00
Terrence Cole
f9209afd94 Bug 1105069 - Part 14: Convert NoteJSChild to GCCellPtr; r=mccr8, r=jonco 2014-12-05 09:38:34 -08:00
Andrew McCreight
464b3de34d Bug 1052793 - Do per-zone GC for CC_WAITING triggers. r=smaug 2014-12-13 21:17:35 -08:00
Andrew McCreight
b46210a06d Bug 1097850 - ChildFinder::NoteNativeChild() should call CanSkip(). r=smaug 2014-12-12 13:42:21 -08:00
Andrew McCreight
58504fa2a5 Bug 1110243 - CCGraphBuilder::NoteNativeChild should call CanSkipThis(). r=smaug 2014-12-12 13:42:21 -08:00
Terrence Cole
556a5d11b7 Bug 1105069 - Part 10: Convert NoteWeakMapping to GCCellPtr; r=jonco, r=mccr8 2014-12-05 09:38:32 -08:00
Nicholas Nethercote
cd88198225 Bug 1102525 (part 3) - Replace SegmentedArray with mozilla::SegmentedVector in the cycle collector. r=smaug. 2014-12-08 14:45:13 -08:00
Olli Pettay
ee9a672f0e Bug 1105089, try to have shorter ICC slices during animations, r=mccr8 2014-11-27 13:47:51 +02:00
Nicholas Nethercote
2c1375e09c Bug 1096624 - Use a SegmentedArray in nsCycleCollector::CollectWhite. r=smaug.
This patch does the following.

- Moves the logic for computing the ideal capacity for a SegmentedArray out of
  SnowWhiteKiller into its own class, SegmentedArrayCapacity.

- Replaces the nsTArray in CollectWhite(), which can be very large and is
  complicit in ~1% of OOM crashes, with a SegmentedArray.
2014-11-11 16:02:34 -08:00
Andrew McCreight
31451d53dd Bug 1093278 - Null check in nsPurpleBuffer::VisitEntries. r=smaug 2014-11-03 16:50:00 -05:00
Emanuel Hoogeveen
5b5f796189 Bug 1084651 - Part 5: Simplify Cycle Collector logic now that SliceBudget makes more sense. r=mccr8 2014-11-06 10:14:00 +01:00
Emanuel Hoogeveen
bdc15437f1 Bug 1084651 - Part 2: Clean up SliceBudget and require explicitly choosing between TimeBudget and WorkBudget. r=billm r=mccr8 2014-10-22 14:13:00 +02:00
Nicholas Nethercote
36a6f9d070 Bug 1094564 - Used SegmentedArray in SnowWhiteKiller. r=smaug.
This patch generalizes SegmentedArray a little, and then uses it instead of
nsTArray in SnowWhiteKiller. This avoids some large (sometimes 1 MiB or more)
allocations which were usually mostly unused.
2014-11-09 14:57:09 -08:00
Carsten "Tomcat" Book
df1edffd22 Backed out changeset ebdebc9251be (bug 1084651) 2014-11-07 15:30:49 +01:00
Carsten "Tomcat" Book
e88af6d034 Backed out changeset 77959236fb15 (bug 1084651) 2014-11-07 15:30:16 +01:00
Emanuel Hoogeveen
155d7b3ae3 Bug 1084651 - Part 5: Simplify Cycle Collector logic now that SliceBudget makes more sense. r=mccr8 2014-11-06 10:14:00 +01:00
Emanuel Hoogeveen
0b5aa87533 Bug 1084651 - Part 2: Clean up SliceBudget and require explicitly choosing between TimeBudget and WorkBudget. r=wmccloskey r=mccr8 2014-10-22 14:13:00 +02:00
Carsten "Tomcat" Book
9f99f54951 Backed out 7 changesets (bug 1084651) for ASAN Bustage on a CLOSED TREE
Backed out changeset dd2b3e78b425 (bug 1084651)
Backed out changeset 2711fbd91819 (bug 1084651)
Backed out changeset 59a163addd79 (bug 1084651)
Backed out changeset d36f6dbbf925 (bug 1084651)
Backed out changeset 78102b62a4a0 (bug 1084651)
Backed out changeset 06387a2343a0 (bug 1084651)
Backed out changeset 2f8e7c39573e (bug 1084651)
2014-11-05 15:20:25 +01:00
Emanuel Hoogeveen
03a9c3f2b0 Bug 1084651 - Part 5: Simplify Cycle Collector logic now that SliceBudget makes more sense. r=mccr8 2014-10-21 11:54:00 +02:00
Emanuel Hoogeveen
f323ca2f54 Bug 1084651 - Part 2: Clean up SliceBudget and require explicitly choosing between TimeBudget and WorkBudget. r=wmccloskey r=mccr8 2014-10-22 14:13:00 +02:00
Andrew McCreight
5801cbcb0f Bug 1087799, part 3 - Do not include any JS things in the list of white nodes. r=smaug
Root() does not actually root JS things, so if some other class's Unlink() method ends
up calling the GC, whiteNodes will end up containing dead pointers. (This is safe right
now because the Unlink and Unroot methods do not do anything to JS things.) It is less
error prone to simply never store those pointers.

Also, add some asserts to enforce that we never call any of the white-object methods
for JS things.
2014-10-24 15:06:56 -07:00
Andrew McCreight
f476c6b76f Bug 1087799, part 2 - Rename count to numWhiteNodes in nsCycleCollector::CollectWhite(). r=smaug 2014-10-24 15:06:56 -07:00
Andrew McCreight
de6e95b132 Bug 1087799, part 1 - Loosen the invariant in nsCycleCollector::FinishAnyCurrentCollection(). r=smaug
If an Unlink() method ends up running JS, it can cause a GC, which will make us reenter the CC,
which will not do anything because we're already in a CC. Therefore, FinishAnyCurrentCollection()
won't finish the CC. This is safe because the CC only touches things it actually holds alive via
the Root() method.
2014-10-24 15:06:55 -07:00
Andrew McCreight
d869fa7eaa Bug 727965 - Trigger CC_WAITING GCs based on number of freed JS objects and zones. r=smaug 2014-10-20 10:07:52 -07:00
Nicholas Nethercote
c9cbbdc34d Bug 1057912 - Privatize most of PLDHashTable's fields. r=roc. 2014-08-25 16:56:33 -07:00
Birunthan Mohanathas
6e9ec233ed Bug 1046841 - Fix more style violations in previously touched .cpp files in xpcom/. r=froydnj 2014-08-25 12:17:15 -07:00
Trevor Saunders
d67df400c1 bug 1047696 - mark a number of classes MOZ_FINAL to get compilers to devirtualize more r=froydnj 2014-08-05 13:33:55 -04:00
Nicholas Nethercote
663b82ea3b Bug 1050009 - Initialize pldhash tables with a length, not a capacity. r=roc.
* * *
imported patch rm-dummy-params
2014-08-06 06:31:21 -07:00
Terrence Cole
101e1a8bb1 Bug 1047120 - PurpleBuffer doesn't actually need to use Heap<T>; r=mccr8,jonco 2014-07-31 14:43:45 -07:00
Ehsan Akhgari
c60f82c778 Bug 1045065 - Fix some bad implicit constructors in xpcom; r=froydnj 2014-07-28 13:19:06 -04:00
Jon Coppeard
c454bebcf7 Bug 1043888 - Make GetObjetZone() work on nursery objects and rename GetGCThingZone() to GetTenuredGCThingZone() r=terrence 2014-07-28 10:39:36 +01:00
Andrew McCreight
4fb46ca258 Bug 1033654 - Rename GCGraphBuilder to CCGraphBuilder. r=smaug 2014-07-09 21:31:00 +02:00
Benoit Jacob
fcd3b40972 Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Andrew McCreight
2feb3e9a24 Bug 1023758, part 2 - Dead traversed objects should be treated as incremental roots and colored. r=smaug 2014-06-30 16:18:47 -07:00
Andrew McCreight
bcd31d2d69 Bug 1023758, part 1 - Refactor the node scanning loop in nsCycleCollector::ScanIncrementalRoots(). r=smaug
This will make it easier to scan for things besides gray JS nodes.  It slightly
reorders the tests we do, but it shouldn't really matter.
2014-06-30 16:18:46 -07:00
Wes Kocher
8d34dc1b3b 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
6d0ba9e6eb Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Nicholas Nethercote
7b107d5931 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg. 2014-05-20 23:06:54 -07:00