Trying to break the cycle on nsNavHistoryQueryResultNode::mQueries.

This commit is contained in:
mozilla.mano@sent.com 2007-05-19 12:02:38 -07:00
Родитель 03a42d588e
Коммит 0712c2b2ab
2 изменённых файлов: 29 добавлений и 5 удалений

Просмотреть файл

@ -70,6 +70,7 @@
#include "prprf.h"
#include "mozStorageHelper.h"
#include "nsAnnotationService.h"
#include "nsCycleCollectionParticipant.h"
#define ICONURI_QUERY "chrome://browser/skin/places/query.png"
@ -1848,9 +1849,27 @@ nsNavHistoryContainerResultNode::ClearContents()
// to a message without doing a requery. For complex changes or complex
// queries, we give up and requery.
NS_IMPL_ISUPPORTS_INHERITED1(nsNavHistoryQueryResultNode,
nsNavHistoryContainerResultNode,
nsINavHistoryQueryResultNode)
NS_IMPL_CYCLE_COLLECTION_CLASS(nsNavHistoryQueryResultNode)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsNavHistoryQueryResultNode)
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMARRAY(mQueries)
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsNavHistoryQueryResultNode)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mQueries)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTING_ADDREF_AMBIGUOUS(nsNavHistoryQueryResultNode, nsINavHistoryQueryResultNode)
NS_IMPL_CYCLE_COLLECTING_RELEASE_AMBIGUOUS(nsNavHistoryQueryResultNode, nsINavHistoryQueryResultNode)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsNavHistoryQueryResultNode)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsINavHistoryResultNode, nsINavHistoryQueryResultNode)
NS_INTERFACE_MAP_ENTRY(nsNavHistoryResultNode)
NS_INTERFACE_MAP_STATIC_AMBIGUOUS(nsNavHistoryContainerResultNode)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsINavHistoryContainerResultNode, nsINavHistoryQueryResultNode)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsINavHistoryQueryResultNode)
NS_INTERFACE_MAP_ENTRY(nsINavHistoryQueryResultNode)
NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsNavHistoryQueryResultNode)
NS_INTERFACE_MAP_END
nsNavHistoryQueryResultNode::nsNavHistoryQueryResultNode(
const nsACString& aTitle, const nsACString& aIconURI,

Просмотреть файл

@ -48,6 +48,7 @@
#include "nsTArray.h"
#include "nsInterfaceHashtable.h"
#include "nsDataHashtable.h"
#include "nsCycleCollectionParticipant.h"
class nsNavHistory;
class nsIDateTimeFormat;
@ -655,7 +656,11 @@ public:
const nsCOMArray<nsNavHistoryQuery>& aQueries,
nsNavHistoryQueryOptions* aOptions);
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_NSINAVHISTORYQUERYRESULTNODE
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsNavHistoryQueryResultNode, nsNavHistoryResultNode)
NS_FORWARD_COMMON_RESULTNODE_TO_BASE
NS_IMETHOD GetType(PRUint32* type)
{ *type = nsNavHistoryResultNode::RESULT_TYPE_QUERY; return NS_OK; }
@ -664,7 +669,7 @@ public:
NS_IMETHOD GetHasChildren(PRBool* aHasChildren);
NS_IMETHOD GetChildrenReadOnly(PRBool *aChildrenReadOnly)
{ return nsNavHistoryContainerResultNode::GetChildrenReadOnly(aChildrenReadOnly); }
NS_DECL_NSINAVHISTORYQUERYRESULTNODE
PRBool CanExpand();