mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 629285 - Crash at AsyncGetBookmarksForURI.
r=sdwilsh a=blocker
This commit is contained in:
parent
2c9fdff81a
commit
5f15a4397a
@ -124,15 +124,19 @@ class AsyncGetBookmarksForURI : public AsyncStatementCallback
|
||||
public:
|
||||
AsyncGetBookmarksForURI(nsNavBookmarks* aBookmarksSvc,
|
||||
Method aCallback,
|
||||
DataType aData)
|
||||
const DataType& aData)
|
||||
: mBookmarksSvc(aBookmarksSvc)
|
||||
, mCallback(aCallback)
|
||||
, mData(aData)
|
||||
{
|
||||
}
|
||||
|
||||
void Init()
|
||||
{
|
||||
nsCOMPtr<mozIStorageStatement> stmt =
|
||||
aBookmarksSvc->GetStatementById(DB_GET_BOOKMARKS_FOR_URI);
|
||||
mBookmarksSvc->GetStatementById(DB_GET_BOOKMARKS_FOR_URI);
|
||||
if (stmt) {
|
||||
(void)URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), aData.uri);
|
||||
(void)URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), mData.uri);
|
||||
nsCOMPtr<mozIStoragePendingStatement> pendingStmt;
|
||||
(void)stmt->ExecuteAsync(this, getter_AddRefs(pendingStmt));
|
||||
}
|
||||
@ -2916,14 +2920,14 @@ nsNavBookmarks::RemoveObserver(nsINavBookmarkObserver* aObserver)
|
||||
}
|
||||
|
||||
void
|
||||
nsNavBookmarks::NotifyItemVisited(ItemVisitData aData)
|
||||
nsNavBookmarks::NotifyItemVisited(const ItemVisitData& aData)
|
||||
{
|
||||
NOTIFY_OBSERVERS(mCanNotify, mCacheObservers, mObservers, nsINavBookmarkObserver,
|
||||
OnItemVisited(aData.itemId, aData.visitId, aData.time));
|
||||
}
|
||||
|
||||
void
|
||||
nsNavBookmarks::NotifyItemChanged(ItemChangeData aData)
|
||||
nsNavBookmarks::NotifyItemChanged(const ItemChangeData& aData)
|
||||
{
|
||||
NOTIFY_OBSERVERS(mCanNotify, mCacheObservers, mObservers, nsINavBookmarkObserver,
|
||||
OnItemChanged(aData.itemId, aData.property,
|
||||
@ -2970,6 +2974,7 @@ nsNavBookmarks::OnVisit(nsIURI* aURI, PRInt64 aVisitId, PRTime aTime,
|
||||
|
||||
nsRefPtr< AsyncGetBookmarksForURI<ItemVisitMethod, ItemVisitData> > notifier =
|
||||
new AsyncGetBookmarksForURI<ItemVisitMethod, ItemVisitData>(this, &nsNavBookmarks::NotifyItemVisited, visitData);
|
||||
notifier->Init();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -2994,6 +2999,7 @@ nsNavBookmarks::OnDeleteURI(nsIURI* aURI)
|
||||
|
||||
nsRefPtr< AsyncGetBookmarksForURI<ItemChangeMethod, ItemChangeData> > notifier =
|
||||
new AsyncGetBookmarksForURI<ItemChangeMethod, ItemChangeData>(this, &nsNavBookmarks::NotifyItemChanged, changeData);
|
||||
notifier->Init();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -3054,6 +3060,7 @@ nsNavBookmarks::OnPageChanged(nsIURI* aURI, PRUint32 aWhat,
|
||||
else {
|
||||
nsRefPtr< AsyncGetBookmarksForURI<ItemChangeMethod, ItemChangeData> > notifier =
|
||||
new AsyncGetBookmarksForURI<ItemChangeMethod, ItemChangeData>(this, &nsNavBookmarks::NotifyItemChanged, changeData);
|
||||
notifier->Init();
|
||||
}
|
||||
}
|
||||
return NS_OK;
|
||||
|
@ -74,8 +74,8 @@ namespace places {
|
||||
PRUint16 itemType;
|
||||
};
|
||||
|
||||
typedef void (nsNavBookmarks::*ItemVisitMethod)(ItemVisitData);
|
||||
typedef void (nsNavBookmarks::*ItemChangeMethod)(ItemChangeData);
|
||||
typedef void (nsNavBookmarks::*ItemVisitMethod)(const ItemVisitData&);
|
||||
typedef void (nsNavBookmarks::*ItemChangeMethod)(const ItemChangeData&);
|
||||
|
||||
} // namespace places
|
||||
} // namespace mozilla
|
||||
@ -211,7 +211,7 @@ public:
|
||||
* @param aData
|
||||
* Details about the new visit.
|
||||
*/
|
||||
void NotifyItemVisited(mozilla::places::ItemVisitData aData);
|
||||
void NotifyItemVisited(const mozilla::places::ItemVisitData& aData);
|
||||
|
||||
/**
|
||||
* Notifies that a bookmark has changed.
|
||||
@ -221,7 +221,7 @@ public:
|
||||
* @param aData
|
||||
* Details about the change.
|
||||
*/
|
||||
void NotifyItemChanged(mozilla::places::ItemChangeData aData);
|
||||
void NotifyItemChanged(const mozilla::places::ItemChangeData& aData);
|
||||
|
||||
private:
|
||||
static nsNavBookmarks* gBookmarksService;
|
||||
|
Loading…
Reference in New Issue
Block a user