mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Add the editor to cycle collection. (Bug 423233) r+sr=peterv
This commit is contained in:
parent
a55b8a1b0a
commit
0864915da4
@ -167,8 +167,55 @@ nsEditor::~nsEditor()
|
||||
NS_IF_RELEASE(mViewManager);
|
||||
}
|
||||
|
||||
NS_IMPL_ISUPPORTS5(nsEditor, nsIEditor, nsIEditorIMESupport,
|
||||
nsISupportsWeakReference, nsIPhonetic, nsIMutationObserver)
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(nsEditor)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsEditor)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mRootElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mInlineSpellChecker)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mTxnMgr)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mIMETextRangeList)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mIMETextNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMARRAY(mActionListeners)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMARRAY(mEditorObservers)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMARRAY(mDocStateListeners)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mEventTarget)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mKeyListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mMouseListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mTextListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mCompositionListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mDragListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mFocusListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsEditor)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mRootElement)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mInlineSpellChecker)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mTxnMgr)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mIMETextRangeList)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mIMETextNode)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mActionListeners)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mEditorObservers)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mDocStateListeners)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEventTarget)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mKeyListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mMouseListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mTextListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mCompositionListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mDragListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mFocusListenerP)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsEditor)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIMutationObserver)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIPhonetic)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISupportsWeakReference)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEditorIMESupport)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEditor)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIEditor)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF_AMBIGUOUS(nsEditor, nsIEditor)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE_AMBIGUOUS(nsEditor, nsIEditor)
|
||||
|
||||
#ifdef XP_MAC
|
||||
#pragma mark -
|
||||
|
@ -65,6 +65,7 @@
|
||||
#include "nsPIDOMEventTarget.h"
|
||||
#include "nsStubMutationObserver.h"
|
||||
#include "nsIViewManager.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
|
||||
class nsIDOMCharacterData;
|
||||
class nsIDOMRange;
|
||||
@ -138,7 +139,9 @@ public:
|
||||
|
||||
//Interfaces for addref and release and queryinterface
|
||||
//NOTE: Use NS_DECL_ISUPPORTS_INHERITED in any class inherited from nsEditor
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsEditor,
|
||||
nsIEditor)
|
||||
|
||||
/* ------------ utility methods -------------- */
|
||||
NS_IMETHOD GetPresShell(nsIPresShell **aPS);
|
||||
|
@ -239,7 +239,7 @@ nsHTMLEditRules::~nsHTMLEditRules()
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(nsHTMLEditRules, nsTextEditRules)
|
||||
NS_IMPL_RELEASE_INHERITED(nsHTMLEditRules, nsTextEditRules)
|
||||
NS_IMPL_QUERY_INTERFACE3(nsHTMLEditRules, nsIHTMLEditRules, nsIEditRules, nsIEditActionListener)
|
||||
NS_IMPL_QUERY_INTERFACE_INHERITED2(nsHTMLEditRules, nsTextEditRules, nsIHTMLEditRules, nsIEditActionListener)
|
||||
|
||||
|
||||
/********************************************************
|
||||
|
@ -75,7 +75,7 @@ struct StyleCache : public PropItem
|
||||
|
||||
#define SIZE_STYLE_TABLE 19
|
||||
|
||||
class nsHTMLEditRules : public nsIHTMLEditRules, public nsTextEditRules, public nsIEditActionListener
|
||||
class nsHTMLEditRules : public nsTextEditRules, public nsIHTMLEditRules, public nsIEditActionListener
|
||||
{
|
||||
public:
|
||||
|
||||
|
@ -120,10 +120,22 @@ nsPlaintextEditor::~nsPlaintextEditor()
|
||||
mRules->DetachEditor();
|
||||
}
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_CLASS(nsPlaintextEditor)
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsPlaintextEditor, nsEditor)
|
||||
if (tmp->mRules)
|
||||
tmp->mRules->DetachEditor();
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mRules)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsPlaintextEditor, nsEditor)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mRules)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(nsPlaintextEditor, nsEditor)
|
||||
NS_IMPL_RELEASE_INHERITED(nsPlaintextEditor, nsEditor)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN(nsPlaintextEditor)
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsPlaintextEditor)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIPlaintextEditor)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEditorMailSupport)
|
||||
NS_INTERFACE_MAP_END_INHERITING(nsEditor)
|
||||
|
@ -49,6 +49,7 @@
|
||||
#include "nsIDOMEventListener.h"
|
||||
|
||||
#include "nsEditRules.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
|
||||
class nsITransferable;
|
||||
class nsIDocumentEncoder;
|
||||
@ -68,6 +69,7 @@ public:
|
||||
// NOTE macro used is for classes that inherit from
|
||||
// another class. Only the base class should use NS_DECL_ISUPPORTS
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsPlaintextEditor, nsEditor)
|
||||
|
||||
/* below used by TypedText() */
|
||||
enum {
|
||||
|
@ -114,8 +114,15 @@ nsTextEditRules::~nsTextEditRules()
|
||||
* XPCOM Cruft
|
||||
********************************************************/
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsTextEditRules, nsIEditRules)
|
||||
NS_IMPL_CYCLE_COLLECTION_2(nsTextEditRules, mBogusNode, mCachedSelectionNode)
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsTextEditRules)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEditRules)
|
||||
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIEditRules)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsTextEditRules)
|
||||
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsTextEditRules)
|
||||
|
||||
/********************************************************
|
||||
* Public methods
|
||||
|
@ -59,7 +59,8 @@
|
||||
class nsTextEditRules : public nsIEditRules
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS(nsTextEditRules)
|
||||
|
||||
nsTextEditRules();
|
||||
virtual ~nsTextEditRules();
|
||||
|
Loading…
Reference in New Issue
Block a user