From 72ae398738a6c492792b69624a8358e02e81b553 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 21 May 2011 16:31:39 -0700 Subject: [PATCH] Bug 658750 - Part 2: Make nsFrameSelection not inherit from nsISupports. r=roc --- content/html/content/src/nsTextEditorState.cpp | 10 +++++++++- layout/generic/nsFrameSelection.h | 16 +++++++++------- layout/generic/nsSelection.cpp | 18 +++++++++--------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/content/html/content/src/nsTextEditorState.cpp b/content/html/content/src/nsTextEditorState.cpp index 75440592411..7edec59df28 100644 --- a/content/html/content/src/nsTextEditorState.cpp +++ b/content/html/content/src/nsTextEditorState.cpp @@ -237,7 +237,15 @@ NS_INTERFACE_TABLE_HEAD(nsTextInputSelectionImpl) NS_INTERFACE_TABLE_TO_MAP_SEGUE_CYCLE_COLLECTION(nsTextInputSelectionImpl) NS_INTERFACE_MAP_END -NS_IMPL_CYCLE_COLLECTION_2(nsTextInputSelectionImpl, mFrameSelection, mLimiter) +NS_IMPL_CYCLE_COLLECTION_CLASS(nsTextInputSelectionImpl) +NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsTextInputSelectionImpl) + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mFrameSelection) + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mLimiter) +NS_IMPL_CYCLE_COLLECTION_UNLINK_END +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsTextInputSelectionImpl) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mFrameSelection, nsFrameSelection) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mLimiter) +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END // BEGIN nsTextInputSelectionImpl diff --git a/layout/generic/nsFrameSelection.h b/layout/generic/nsFrameSelection.h index ccad2b487d5..5e88c24ccd9 100644 --- a/layout/generic/nsFrameSelection.h +++ b/layout/generic/nsFrameSelection.h @@ -204,13 +204,17 @@ class nsIScrollableFrame; * or they may cause other objects to be deleted. */ -class NS_FINAL_CLASS nsFrameSelection : public nsISupports { +class NS_FINAL_CLASS nsFrameSelection { public: enum HINT { HINTLEFT = 0, HINTRIGHT = 1}; //end of this line or beginning of next - /*interfaces for addref and release and queryinterface*/ - - NS_DECL_CYCLE_COLLECTING_ISUPPORTS - NS_DECL_CYCLE_COLLECTION_CLASS(nsFrameSelection) + + nsFrameSelection(); +private: + ~nsFrameSelection(); +public: + + NS_INLINE_DECL_REFCOUNTING(nsFrameSelection) + NS_DECL_CYCLE_COLLECTION_NATIVE_CLASS(nsFrameSelection) /** Init will initialize the frame selector with the necessary pres shell to * be used by most of the methods @@ -586,8 +590,6 @@ public: nsresult MaintainSelection(nsSelectionAmount aAmount = eSelectNoAmount); - nsFrameSelection(); - void StartBatchChanges(); void EndBatchChanges(); /*unsafe*/ diff --git a/layout/generic/nsSelection.cpp b/layout/generic/nsSelection.cpp index 8b9f5af1ee3..c9b1348e651 100644 --- a/layout/generic/nsSelection.cpp +++ b/layout/generic/nsSelection.cpp @@ -748,9 +748,13 @@ nsFrameSelection::nsFrameSelection() mSelectionChangeReason = nsISelectionListener::NO_REASON; } +nsFrameSelection::~nsFrameSelection() +{ +} + NS_IMPL_CYCLE_COLLECTION_CLASS(nsFrameSelection) -NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsFrameSelection) +NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_NATIVE(nsFrameSelection) PRInt32 i; for (i = 0; i < nsISelectionController::NUM_SELECTIONTYPES; ++i) { tmp->mDomSelections[i] = nsnull; @@ -765,7 +769,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsFrameSelection) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mUnselectCellOnMouseUp) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mMaintainRange) NS_IMPL_CYCLE_COLLECTION_UNLINK_END -NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsFrameSelection) +NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_BEGIN(nsFrameSelection) PRInt32 i; for (i = 0; i < nsISelectionController::NUM_SELECTIONTYPES; ++i) { NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mDomSelections[i], @@ -780,12 +784,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsFrameSelection) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mMaintainRange) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END -NS_IMPL_CYCLE_COLLECTING_ADDREF(nsFrameSelection) -NS_IMPL_CYCLE_COLLECTING_RELEASE(nsFrameSelection) -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsFrameSelection) - NS_INTERFACE_MAP_ENTRY(nsISupports) -NS_INTERFACE_MAP_END - +NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(nsFrameSelection, AddRef) +NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(nsFrameSelection, Release) nsresult nsFrameSelection::FetchDesiredX(nscoord &aDesiredX) //the x position requested by the Key Handling for up down @@ -3444,7 +3444,7 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsTypedSelection) } } NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mAnchorFocusRange) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mFrameSelection) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NATIVE_MEMBER(mFrameSelection, nsFrameSelection) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mSelectionListeners) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END