Bug 1322459 part 2 - Remove duplicate mRefCnt in JumpListShortCut. r=Ehsan

MozReview-Commit-ID: CFt05fItCOu

--HG--
extra : rebase_source : 96364a52920a044758744fd471c73a82e5770616
This commit is contained in:
Ting-Yu Chou 2016-12-13 15:56:34 +08:00
Родитель 09a906cff5
Коммит f8f09a7949
2 изменённых файлов: 46 добавлений и 30 удалений

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

@ -26,24 +26,32 @@ namespace widget {
NS_IMPL_ISUPPORTS(JumpListItem,
nsIJumpListItem)
NS_IMPL_ISUPPORTS_INHERITED(JumpListSeparator,
JumpListItem,
nsIJumpListSeparator)
NS_INTERFACE_MAP_BEGIN(JumpListSeparator)
NS_INTERFACE_MAP_ENTRY(nsIJumpListSeparator)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIJumpListItem, JumpListItemBase)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, JumpListItemBase)
NS_INTERFACE_MAP_END
NS_IMPL_ADDREF(JumpListSeparator)
NS_IMPL_RELEASE(JumpListSeparator)
NS_IMPL_ISUPPORTS_INHERITED(JumpListLink,
JumpListItem,
nsIJumpListLink)
NS_INTERFACE_MAP_BEGIN(JumpListLink)
NS_INTERFACE_MAP_ENTRY(nsIJumpListLink)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIJumpListItem, JumpListItemBase)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, JumpListItemBase)
NS_INTERFACE_MAP_END
NS_IMPL_ADDREF(JumpListLink)
NS_IMPL_RELEASE(JumpListLink)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(JumpListShortcut)
NS_INTERFACE_MAP_ENTRY(nsIJumpListShortcut)
NS_INTERFACE_MAP_END_INHERITING(JumpListItem)
NS_IMPL_CYCLE_COLLECTION(JumpListShortcut, mHandlerApp)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsIJumpListItem, JumpListItemBase)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIJumpListShortcut)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(JumpListShortcut)
NS_IMPL_CYCLE_COLLECTING_RELEASE(JumpListShortcut)
NS_IMPL_CYCLE_COLLECTION(JumpListShortcut, mHandlerApp)
NS_IMETHODIMP JumpListItem::GetType(int16_t *aType)
NS_IMETHODIMP JumpListItemBase::GetType(int16_t *aType)
{
NS_ENSURE_ARG_POINTER(aType);
@ -52,7 +60,7 @@ NS_IMETHODIMP JumpListItem::GetType(int16_t *aType)
return NS_OK;
}
NS_IMETHODIMP JumpListItem::Equals(nsIJumpListItem *aItem, bool *aResult)
NS_IMETHODIMP JumpListItemBase::Equals(nsIJumpListItem *aItem, bool *aResult)
{
NS_ENSURE_ARG_POINTER(aItem);

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

@ -26,24 +26,23 @@ class nsIThread;
namespace mozilla {
namespace widget {
class JumpListItem : public nsIJumpListItem
class JumpListItemBase : public nsIJumpListItem
{
public:
JumpListItem() :
JumpListItemBase() :
mItemType(nsIJumpListItem::JUMPLIST_ITEM_EMPTY)
{}
JumpListItem(int32_t type) :
JumpListItemBase(int32_t type) :
mItemType(type)
{}
NS_DECL_ISUPPORTS
NS_DECL_NSIJUMPLISTITEM
static const char kJumpListCacheDir[];
protected:
virtual ~JumpListItem()
virtual ~JumpListItemBase()
{}
short Type() { return mItemType; }
@ -51,33 +50,42 @@ protected:
};
class JumpListSeparator : public JumpListItem, public nsIJumpListSeparator
class JumpListItem : public JumpListItemBase
{
~JumpListItem() {}
public:
using JumpListItemBase::JumpListItemBase;
NS_DECL_ISUPPORTS
};
class JumpListSeparator : public JumpListItemBase, public nsIJumpListSeparator
{
~JumpListSeparator() {}
public:
JumpListSeparator() :
JumpListItem(nsIJumpListItem::JUMPLIST_ITEM_SEPARATOR)
JumpListItemBase(nsIJumpListItem::JUMPLIST_ITEM_SEPARATOR)
{}
NS_DECL_ISUPPORTS_INHERITED
NS_IMETHOD GetType(int16_t *aType) override { return JumpListItem::GetType(aType); }
NS_IMETHOD Equals(nsIJumpListItem *item, bool *_retval) override { return JumpListItem::Equals(item, _retval); }
NS_DECL_ISUPPORTS
NS_FORWARD_NSIJUMPLISTITEM(JumpListItemBase::)
static nsresult GetSeparator(RefPtr<IShellLinkW>& aShellLink);
};
class JumpListLink : public JumpListItem, public nsIJumpListLink
class JumpListLink : public JumpListItemBase, public nsIJumpListLink
{
~JumpListLink() {}
public:
JumpListLink() :
JumpListItem(nsIJumpListItem::JUMPLIST_ITEM_LINK)
JumpListItemBase(nsIJumpListItem::JUMPLIST_ITEM_LINK)
{}
NS_DECL_ISUPPORTS_INHERITED
NS_IMETHOD GetType(int16_t *aType) override { return JumpListItem::GetType(aType); }
NS_DECL_ISUPPORTS
NS_IMETHOD GetType(int16_t *aType) override { return JumpListItemBase::GetType(aType); }
NS_IMETHOD Equals(nsIJumpListItem *item, bool *_retval) override;
NS_DECL_NSIJUMPLISTLINK
@ -90,18 +98,18 @@ protected:
nsCOMPtr<nsICryptoHash> mCryptoHash;
};
class JumpListShortcut : public JumpListItem, public nsIJumpListShortcut
class JumpListShortcut : public JumpListItemBase, public nsIJumpListShortcut
{
~JumpListShortcut() {}
public:
JumpListShortcut() :
JumpListItem(nsIJumpListItem::JUMPLIST_ITEM_SHORTCUT)
JumpListItemBase(nsIJumpListItem::JUMPLIST_ITEM_SHORTCUT)
{}
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(JumpListShortcut, JumpListItem)
NS_IMETHOD GetType(int16_t *aType) override { return JumpListItem::GetType(aType); }
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(JumpListShortcut, JumpListItemBase)
NS_IMETHOD GetType(int16_t *aType) override { return JumpListItemBase::GetType(aType); }
NS_IMETHOD Equals(nsIJumpListItem *item, bool *_retval) override;
NS_DECL_NSIJUMPLISTSHORTCUT