summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-11-15 13:32:25 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-11-15 13:32:25 +0100
commitc94825c861795cc2bb0b98483143f277eb3f5060 (patch)
tree0283c343209ff60889c7fb109f3ff56802593981
parenta748fde4cde215f3da9c5f23e85448bc3c2b15a9 (diff)
downloadUXP-c94825c861795cc2bb0b98483143f277eb3f5060.tar
UXP-c94825c861795cc2bb0b98483143f277eb3f5060.tar.gz
UXP-c94825c861795cc2bb0b98483143f277eb3f5060.tar.lz
UXP-c94825c861795cc2bb0b98483143f277eb3f5060.tar.xz
UXP-c94825c861795cc2bb0b98483143f277eb3f5060.zip
Tell the cycle collector about nsScriptLoadRequest::mElement.
Not doing this can cause a leak because there is a cycle between the load request and the script element.
-rw-r--r--dom/base/nsScriptLoader.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/dom/base/nsScriptLoader.cpp b/dom/base/nsScriptLoader.cpp
index a6d20e363..0eb5bbf31 100644
--- a/dom/base/nsScriptLoader.cpp
+++ b/dom/base/nsScriptLoader.cpp
@@ -81,11 +81,19 @@ ImplCycleCollectionTraverse(nsCycleCollectionTraversalCallback& aCallback,
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsScriptLoadRequest)
NS_INTERFACE_MAP_END
-NS_IMPL_CYCLE_COLLECTION_0(nsScriptLoadRequest)
-
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsScriptLoadRequest)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsScriptLoadRequest)
+NS_IMPL_CYCLE_COLLECTION_CLASS(nsScriptLoadRequest)
+
+NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsScriptLoadRequest)
+ NS_IMPL_CYCLE_COLLECTION_UNLINK(mElement)
+NS_IMPL_CYCLE_COLLECTION_UNLINK_END
+
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsScriptLoadRequest)
+ NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mElement)
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
+
nsScriptLoadRequest::~nsScriptLoadRequest()
{
js_free(mScriptTextBuf);