зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
09a906cff5
Коммит
f8f09a7949
|
@ -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
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче