Bug 658750 - Part 2: Make nsFrameSelection not inherit from nsISupports. r=roc

This commit is contained in:
Craig Topper 2011-05-21 16:31:39 -07:00
parent 77cbb43e22
commit 72ae398738
3 changed files with 27 additions and 17 deletions

View File

@ -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

View File

@ -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*/

View File

@ -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