Bug 1402499 - Add NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED_0
Add macro for nsISupports inheriting classes that need cycle
collection and only inherit from one parent, with no interface table
needed. Takes care of map and addref/release calls.
MozReview-Commit-ID: LtTwYH0DeEz
--- a/xpcom/base/nsCycleCollectionParticipant.h
+++ b/xpcom/base/nsCycleCollectionParticipant.h
@@ -964,16 +964,21 @@ static NS_CYCLE_COLLECTION_INNERCLASS NS
NS_INTERFACE_TABLE_INHERITED(aClass, __VA_ARGS__) \
NS_INTERFACE_TABLE_TAIL_INHERITING(aSuper)
#define NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED(aClass, aSuper, ...) \
NS_IMPL_QUERY_INTERFACE_CYCLE_COLLECTION_INHERITED(aClass, aSuper, __VA_ARGS__) \
NS_IMPL_ADDREF_INHERITED(aClass, aSuper) \
NS_IMPL_RELEASE_INHERITED(aClass, aSuper)
+#define NS_IMPL_ISUPPORTS_CYCLE_COLLECTION_INHERITED_0(aClass, aSuper) \
+ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(aClass) \
+ NS_INTERFACE_MAP_END_INHERITING(aSuper) \
+ NS_IMPL_ADDREF_INHERITED(aClass, aSuper) \
+ NS_IMPL_RELEASE_INHERITED(aClass, aSuper)
/**
* Equivalency of the high three words where two IIDs have the same
* top three words but not the same low word.
*/
inline bool TopThreeWordsEquals(const nsID& aID,
const nsID& aOther1,
const nsID& aOther2)