Commit a864cbc3 authored by Nika Layzell's avatar Nika Layzell
Browse files

Bug 1401379 - Part 1: Make nsDocShell and nsDocLoader cycle collected, r=smaug

MozReview-Commit-ID: Bui924n8Kvn
parent 31d3fb67
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -946,10 +946,15 @@ nsDocShell::DestroyChildren()
  nsDocLoader::DestroyChildren();
}

NS_IMPL_CYCLE_COLLECTION_INHERITED(nsDocShell,
                                   nsDocLoader,
                                   mSessionStorageManager,
                                   mScriptGlobal)

NS_IMPL_ADDREF_INHERITED(nsDocShell, nsDocLoader)
NS_IMPL_RELEASE_INHERITED(nsDocShell, nsDocLoader)

NS_INTERFACE_MAP_BEGIN(nsDocShell)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDocShell)
  NS_INTERFACE_MAP_ENTRY(nsIDocShell)
  NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeItem)
  NS_INTERFACE_MAP_ENTRY(nsIWebNavigation)
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ public:
  virtual nsresult Init() override;

  NS_DECL_ISUPPORTS_INHERITED
  NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsDocShell, nsDocLoader)

  NS_DECL_NSIDOCSHELL
  NS_DECL_NSIDOCSHELLTREEITEM
+5 −4
Original line number Diff line number Diff line
@@ -165,14 +165,13 @@ nsDocLoader::~nsDocLoader()
         ("DocLoader:%p: deleted.\n", this));
}


/*
 * Implementation of ISupports methods...
 */
NS_IMPL_ADDREF(nsDocLoader)
NS_IMPL_RELEASE(nsDocLoader)
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsDocLoader)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsDocLoader)

NS_INTERFACE_MAP_BEGIN(nsDocLoader)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsDocLoader)
   NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIRequestObserver)
   NS_INTERFACE_MAP_ENTRY(nsIRequestObserver)
   NS_INTERFACE_MAP_ENTRY(nsIDocumentLoader)
@@ -188,6 +187,8 @@ NS_INTERFACE_MAP_BEGIN(nsDocLoader)
   else
NS_INTERFACE_MAP_END

NS_IMPL_CYCLE_COLLECTION(nsDocLoader, mChildrenInOnload)


/*
 * Implementation of nsIInterfaceRequestor methods...
+4 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include "nsCOMPtr.h"
#include "PLDHashTable.h"
#include "nsAutoPtr.h"
#include "nsCycleCollectionParticipant.h"

#include "mozilla/LinkedList.h"

@@ -69,7 +70,9 @@ public:
    // Add aDocLoader as a child to the docloader service.
    static MOZ_MUST_USE nsresult AddDocLoaderAsChildOfRoot(nsDocLoader* aDocLoader);

    NS_DECL_ISUPPORTS
    NS_DECL_CYCLE_COLLECTING_ISUPPORTS
    NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsDocLoader, nsIDocumentLoader)

    NS_DECL_NSIDOCUMENTLOADER

    // nsIProgressEventSink