Closed
Bug 863085
Opened 10 years ago
Closed 10 years ago
Remove NS_CycleCollectorForget2 and friends
Categories
(Core :: XPCOM, defect)
Core
XPCOM
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: mccr8, Assigned: mccr8)
References
(Blocks 1 open bug)
Details
Attachments
(2 files, 1 obsolete file)
3.86 KB,
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
6.19 KB,
patch
|
smaug
:
review+
|
Details | Diff | Splinter Review |
Thanks to Olli's ref counting improvements the cycle collector never forgets, so we should just get rid of this function. See bug 785666 for the changes that may be required for the xpcom/{stub, build} stuff.
Assignee | ||
Comment 1•10 years ago
|
||
Looks like xpcom/stub is gone.
Assignee | ||
Comment 2•10 years ago
|
||
Assignee: nobody → continuation
Assignee | ||
Comment 3•10 years ago
|
||
Comment on attachment 743751 [details] [diff] [review] part 1: gut NS_CycleCollectorForget2 and rename nsCycleCollector::Suspect2 to Suspect ># HG changeset patch ># User Andrew McCreight <amccreight@mozilla.com> ># Date 1367345699 25200 ># Node ID a6d1e489f366523583d6365ec5608ada430ffcf9 ># Parent 122a97fd3d4d8a99ffa5287c0cf49c9d0ff6f9da >Bug 863085, part 1 - Gut NS_CycleCollectorForget2 and rename CC:Suspect2. r=smaug > >diff --git a/xpcom/base/nsCycleCollector.cpp b/xpcom/base/nsCycleCollector.cpp >--- a/xpcom/base/nsCycleCollector.cpp >+++ b/xpcom/base/nsCycleCollector.cpp >@@ -1064,18 +1064,17 @@ public: > bool CollectWhite(nsICycleCollectorListener *aListener); > > nsCycleCollector(CCThreadingModel aModel); > ~nsCycleCollector(); > > nsresult Init(); > void ShutdownThreads(); > >- nsPurpleBufferEntry* Suspect2(void *n, nsCycleCollectionParticipant *cp); >- bool Forget2(nsPurpleBufferEntry *e); >+ nsPurpleBufferEntry* Suspect(void *n, nsCycleCollectionParticipant *cp); > > void CheckThreadSafety(); > > private: > void ShutdownCollect(nsICycleCollectorListener *aListener); > > public: > void Collect(ccType aCCType, >@@ -2596,17 +2595,17 @@ nsCycleCollector_isScanSafe(void *s, nsC > nsXPCOMCycleCollectionParticipant *xcp; > ToParticipant(static_cast<nsISupports*>(s), &xcp); > > return xcp != nullptr; > } > #endif > > nsPurpleBufferEntry* >-nsCycleCollector::Suspect2(void *n, nsCycleCollectionParticipant *cp) >+nsCycleCollector::Suspect(void *n, nsCycleCollectionParticipant *cp) > { > CheckThreadSafety(); > > // Re-entering ::Suspect during collection used to be a fault, but > // we are canonicalizing nsISupports pointers using QI, so we will > // see some spurious refcount traffic here. > > if (mScanInProgress) >@@ -2617,33 +2616,16 @@ nsCycleCollector::Suspect2(void *n, nsCy > > if (mParams.mDoNothing) > return nullptr; > > // Caller is responsible for filling in result's mRefCnt. > return mPurpleBuf.Put(n, cp); > } > >- >-bool >-nsCycleCollector::Forget2(nsPurpleBufferEntry *e) >-{ >- CheckThreadSafety(); >- >- // Re-entering ::Forget during collection used to be a fault, but >- // we are canonicalizing nsISupports pointers using QI, so we will >- // see some spurious refcount traffic here. >- >- if (mScanInProgress) >- return false; >- >- mPurpleBuf.Remove(e); >- return true; >-} >- > void > nsCycleCollector::CheckThreadSafety() > { > #ifdef DEBUG > MOZ_ASSERT(mThread == PR_GetCurrentThread()); > #endif > } > >@@ -2990,34 +2972,23 @@ NS_CycleCollectorSuspect2(void *n, nsCyc > } > > if (collector == (nsCycleCollector*)1) { > // This is our special sentinel value that tells us that we've shut > // down this thread's CC. > return nullptr; > } > >- return collector->Suspect2(n, cp); >+ return collector->Suspect(n, cp); > } > > bool > NS_CycleCollectorForget2(nsPurpleBufferEntry *e) > { >- nsCycleCollector *collector = sCollector.get(); >- >- if (!collector) >- MOZ_CRASH(); >- >- if (collector == (nsCycleCollector*)1) { >- // This is our special sentinel value that tells us that we've shut >- // down this thread's CC. >- return true; >- } >- >- return collector->Forget2(e); >+ return true; > } > > uint32_t > nsCycleCollector_suspectedCount() > { > nsCycleCollector *collector = sCollector.get(); > > if (collector == (nsCycleCollector*)1) {
Attachment #743751 -
Attachment description: gut NS_CycleCollectorForget2 and rename nsCycleCollector::Suspect2 to Suspect → part 1: gut NS_CycleCollectorForget2 and rename nsCycleCollector::Suspect2 to Suspect
Assignee | ||
Comment 4•10 years ago
|
||
I should also update the comments in nsCycleCollector.cpp which talk about forget and are horribly outdated at this point.
Assignee | ||
Comment 5•10 years ago
|
||
Assignee | ||
Comment 6•10 years ago
|
||
I updated the comments in the file so they are not quite so out-of-date.
Attachment #743751 -
Attachment is obsolete: true
Assignee | ||
Updated•10 years ago
|
Attachment #743758 -
Flags: review?(benjamin)
Assignee | ||
Updated•10 years ago
|
Attachment #743888 -
Flags: review?(bugs)
Assignee | ||
Comment 7•10 years ago
|
||
try run: https://tbpl.mozilla.org/?tree=Try&rev=0e536afd216b
Updated•10 years ago
|
Attachment #743758 -
Flags: review?(benjamin) → review+
Comment 8•10 years ago
|
||
Comment on attachment 743888 [details] [diff] [review] part 1: gut NS_CycleCollectorForget2 and rename nsCycleCollector::Suspect2 to Suspect So we have empty NS_CycleCollectorForget2? Could we at least add a warning if one tries to use it.
Comment 9•10 years ago
|
||
Oh, the other patch removes it.
Updated•10 years ago
|
Attachment #743888 -
Flags: review?(bugs) → review+
Assignee | ||
Comment 10•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/210b52cdd7eb https://hg.mozilla.org/integration/mozilla-inbound/rev/5aceec8a1222
Comment 11•10 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/210b52cdd7eb https://hg.mozilla.org/mozilla-central/rev/5aceec8a1222
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•