Bug 1937634 - Make txMozillaXSLTProcessor::mStylesheetDocument strong. a=dmeehan

Original Revision: https://phabricator.services.mozilla.com/D232262

Differential Revision: https://phabricator.services.mozilla.com/D238777
This commit is contained in:
Andrew McCreight 2025-02-20 12:59:23 +00:00
parent 6173045682
commit e942f3efe9
2 changed files with 14 additions and 11 deletions

View file

@ -260,9 +260,18 @@ inline void ImplCycleCollectionTraverse(
* txMozillaXSLTProcessor
*/
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(txMozillaXSLTProcessor, mOwner,
mEmbeddedStylesheetRoot, mSource,
mVariables)
NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_CLASS(txMozillaXSLTProcessor)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(txMozillaXSLTProcessor)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mOwner, mSource)
tmp->Reset();
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(txMozillaXSLTProcessor)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(
mOwner, mStylesheetDocument, mEmbeddedStylesheetRoot, mSource, mVariables)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(txMozillaXSLTProcessor)
NS_IMPL_CYCLE_COLLECTING_RELEASE(txMozillaXSLTProcessor)
@ -276,23 +285,17 @@ NS_INTERFACE_MAP_END
txMozillaXSLTProcessor::txMozillaXSLTProcessor()
: mOwner(nullptr),
mStylesheetDocument(nullptr),
mTransformResult(NS_OK),
mCompileResult(NS_OK),
mFlags(0) {}
txMozillaXSLTProcessor::txMozillaXSLTProcessor(nsISupports* aOwner)
: mOwner(aOwner),
mStylesheetDocument(nullptr),
mTransformResult(NS_OK),
mCompileResult(NS_OK),
mFlags(0) {}
txMozillaXSLTProcessor::~txMozillaXSLTProcessor() {
if (mStylesheetDocument) {
mStylesheetDocument->RemoveMutationObserver(this);
}
}
txMozillaXSLTProcessor::~txMozillaXSLTProcessor() { Reset(); }
NS_IMETHODIMP
txMozillaXSLTProcessor::SetTransformObserver(nsITransformObserver* aObserver) {

View file

@ -144,7 +144,7 @@ class txMozillaXSLTProcessor final : public nsIDocumentTransformer,
nsCOMPtr<nsISupports> mOwner;
RefPtr<txStylesheet> mStylesheet;
mozilla::dom::Document* mStylesheetDocument; // weak
RefPtr<mozilla::dom::Document> mStylesheetDocument;
nsCOMPtr<nsIContent> mEmbeddedStylesheetRoot;
nsCOMPtr<nsINode> mSource;