--- a/toolkit/components/places/nsNavBookmarks.cpp
+++ b/toolkit/components/places/nsNavBookmarks.cpp
@@ -89,17 +89,17 @@ public:
}
}
NS_IMETHOD HandleResult(mozIStorageResultSet* aResultSet)
{
nsCOMPtr<mozIStorageRow> row;
while (NS_SUCCEEDED(aResultSet->GetNextRow(getter_AddRefs(row))) && row) {
// Skip tags, for the use-cases of this async getter they are useless.
- int64_t grandParentId, tagsFolderId;
+ int64_t grandParentId = -1, tagsFolderId = -1;
nsresult rv = row->GetInt64(5, &grandParentId);
NS_ENSURE_SUCCESS(rv, rv);
rv = mBookmarksSvc->GetTagsFolder(&tagsFolderId);
NS_ENSURE_SUCCESS(rv, rv);
if (grandParentId == tagsFolderId) {
continue;
}
@@ -550,19 +550,17 @@ nsNavBookmarks::InsertBookmarkInDB(int64
// Update last modified date of the ancestors.
// TODO (bug 408991): Doing this for all ancestors would be slow without a
// nested tree, so for now update only the parent.
rv = SetItemDateInternal(LAST_MODIFIED, syncChangeDelta, aParentId,
aDateAdded);
NS_ENSURE_SUCCESS(rv, rv);
}
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isTagging = aGrandParentId == tagsRootId;
if (isTagging) {
// If we're tagging a bookmark, increment the change counter for all
// bookmarks with the URI.
rv = AddSyncChangesForBookmarksWithURI(aURI, syncChangeDelta);
NS_ENSURE_SUCCESS(rv, rv);
}
@@ -646,19 +644,17 @@ nsNavBookmarks::InsertBookmark(int64_t a
TruncateTitle(aTitle, title);
rv = InsertBookmarkInDB(placeId, BOOKMARK, aFolder, index, title, dateAdded,
0, folderGuid, grandParentId, aURI, aSource,
aNewBookmarkId, guid);
NS_ENSURE_SUCCESS(rv, rv);
// If not a tag, recalculate frecency for this entry, since it changed.
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
if (grandParentId != tagsRootId) {
rv = history->UpdateFrecency(placeId);
NS_ENSURE_SUCCESS(rv, rv);
}
rv = transaction.Commit();
NS_ENSURE_SUCCESS(rv, rv);
@@ -710,19 +706,17 @@ nsNavBookmarks::RemoveItem(int64_t aItem
BookmarkData bookmark;
nsresult rv = FetchItemInfo(aItemId, bookmark);
NS_ENSURE_SUCCESS(rv, rv);
mozStorageTransaction transaction(mDB->MainConn(), false);
// First, if not a tag, remove item annotations.
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isUntagging = bookmark.grandParentId == tagsRootId;
if (bookmark.parentId != tagsRootId && !isUntagging) {
nsAnnotationService* annosvc = nsAnnotationService::GetAnnotationService();
NS_ENSURE_TRUE(annosvc, NS_ERROR_OUT_OF_MEMORY);
rv = annosvc->RemoveItemAnnotations(bookmark.id, aSource);
NS_ENSURE_SUCCESS(rv, rv);
}
@@ -908,19 +902,17 @@ nsNavBookmarks::CreateContainerWithID(in
rv = InsertBookmarkInDB(-1, FOLDER, aParent, index,
title, dateAdded, 0, folderGuid, grandParentId,
nullptr, aSource, aNewFolder, guid);
NS_ENSURE_SUCCESS(rv, rv);
rv = transaction.Commit();
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
NOTIFY_BOOKMARKS_OBSERVERS(mCanNotify, mCacheObservers, mObservers,
SKIP_TAGS(aParent == tagsRootId),
OnItemAdded(*aNewFolder, aParent, index, FOLDER,
nullptr, title, dateAdded, guid,
folderGuid, aSource));
*aIndex = index;
@@ -1198,17 +1190,17 @@ nsNavBookmarks::GetDescendantChildren(in
NS_IMETHODIMP
nsNavBookmarks::RemoveFolderChildren(int64_t aFolderId, uint16_t aSource)
{
AUTO_PROFILER_LABEL("nsNavBookmarks::RemoveFolderChilder", OTHER);
NS_ENSURE_ARG_MIN(aFolderId, 1);
- int64_t rootId;
+ int64_t rootId = -1;
nsresult rv = GetPlacesRoot(&rootId);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_ARG(aFolderId != rootId);
BookmarkData folder;
rv = FetchItemInfo(aFolderId, folder);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_ARG(folder.type == TYPE_FOLDER);
@@ -1262,19 +1254,17 @@ nsNavBookmarks::RemoveFolderChildren(int
"WHERE b.id ISNULL)"));
NS_ENSURE_SUCCESS(rv, rv);
// Set the lastModified date.
rv = SetItemDateInternal(LAST_MODIFIED, syncChangeDelta, folder.id,
RoundedPRNow());
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
if (syncChangeDelta) {
nsTArray<TombstoneData> tombstones(folderChildrenArray.Length());
PRTime dateRemoved = RoundedPRNow();
for (uint32_t i = 0; i < folderChildrenArray.Length(); ++i) {
BookmarkData& child = folderChildrenArray[i];
if (NeedsTombstone(child)) {
@@ -1503,19 +1493,17 @@ nsNavBookmarks::MoveItem(int64_t aItemId
// Mark all affected separators as changed
rv = AdjustSeparatorsSyncCounter(bookmark.parentId, bookmark.position, syncChangeDelta);
NS_ENSURE_SUCCESS(rv, rv);
rv = AdjustSeparatorsSyncCounter(aNewParent, newIndex, syncChangeDelta);
NS_ENSURE_SUCCESS(rv, rv);
}
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isChangingTagFolder = bookmark.parentId == tagsRootId;
if (isChangingTagFolder) {
// Moving a tag folder out of the tags root untags all its bookmarks. This
// is an odd case, but the tagging service adds an observer to handle it,
// so we bump the change counter for each untagged item for consistency.
rv = AddSyncChangesForBookmarksInFolder(bookmark.id, syncChangeDelta);
NS_ENSURE_SUCCESS(rv, rv);
}
@@ -1661,19 +1649,17 @@ NS_IMETHODIMP
nsNavBookmarks::SetItemDateAdded(int64_t aItemId, PRTime aDateAdded,
uint16_t aSource)
{
NS_ENSURE_ARG_MIN(aItemId, 1);
BookmarkData bookmark;
nsresult rv = FetchItemInfo(aItemId, bookmark);
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isTagging = bookmark.grandParentId == tagsRootId;
int64_t syncChangeDelta = DetermineSyncChangeDelta(aSource);
// Round here so that we notify with the right value.
bookmark.dateAdded = RoundToMilliseconds(aDateAdded);
if (isTagging) {
// If we're changing a tag, bump the change counter for all tagged
@@ -1734,19 +1720,17 @@ nsNavBookmarks::SetItemLastModified(int6
uint16_t aSource)
{
NS_ENSURE_ARG_MIN(aItemId, 1);
BookmarkData bookmark;
nsresult rv = FetchItemInfo(aItemId, bookmark);
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isTagging = bookmark.grandParentId == tagsRootId;
int64_t syncChangeDelta = DetermineSyncChangeDelta(aSource);
// Round here so that we notify with the right value.
bookmark.lastModified = RoundToMilliseconds(aLastModified);
if (isTagging) {
// If we're changing a tag, bump the change counter for all tagged
@@ -2006,19 +1990,17 @@ nsNavBookmarks::SetItemTitle(int64_t aIt
uint16_t aSource)
{
NS_ENSURE_ARG_MIN(aItemId, 1);
BookmarkData bookmark;
nsresult rv = FetchItemInfo(aItemId, bookmark);
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isChangingTagFolder = bookmark.parentId == tagsRootId;
int64_t syncChangeDelta = DetermineSyncChangeDelta(aSource);
nsAutoCString title;
TruncateTitle(aTitle, title);
if (isChangingTagFolder) {
// If we're changing the title of a tag folder, bump the change counter
@@ -2516,19 +2498,17 @@ nsNavBookmarks::ChangeBookmarkURI(int64_
BookmarkData bookmark;
nsresult rv = FetchItemInfo(aBookmarkId, bookmark);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_ARG(bookmark.type == TYPE_BOOKMARK);
mozStorageTransaction transaction(mDB->MainConn(), false);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool isTagging = bookmark.grandParentId == tagsRootId;
int64_t syncChangeDelta = DetermineSyncChangeDelta(aSource);
nsNavHistory* history = nsNavHistory::GetHistoryService();
NS_ENSURE_TRUE(history, NS_ERROR_OUT_OF_MEMORY);
int64_t newPlaceId;
nsAutoCString newPlaceGuid;
rv = history->GetOrCreateIdForPage(aNewURI, &newPlaceId, newPlaceGuid);
@@ -2633,20 +2613,18 @@ nsNavBookmarks::GetBookmarkIdsForURITArr
"JOIN moz_bookmarks t on t.id = b.parent "
"WHERE b.fk = (SELECT id FROM moz_places WHERE url_hash = hash(:page_url) AND url = :page_url) AND "
"t.parent IS NOT :tags_root "
"ORDER BY b.lastModified DESC, b.id DESC "
);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
- int64_t tagsRootId;
- nsresult rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
- rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), aURI);
+ int64_t tagsRootId = TagsRootId();
+ nsresult rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), aURI);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt64ByName(NS_LITERAL_CSTRING("tags_root"), tagsRootId);
NS_ENSURE_SUCCESS(rv, rv);
bool more;
while (NS_SUCCEEDED((rv = stmt->ExecuteStep(&more))) && more) {
int64_t bookmarkId;
rv = stmt->GetInt64(0, &bookmarkId);
@@ -2676,19 +2654,17 @@ nsNavBookmarks::GetBookmarksForURI(nsIUR
"ORDER BY b.lastModified DESC, b.id DESC "
);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = URIBinder::Bind(stmt, NS_LITERAL_CSTRING("page_url"), aURI);
NS_ENSURE_SUCCESS(rv, rv);
- int64_t tagsRootId;
- rv = GetTagsFolder(&tagsRootId);
- NS_ENSURE_SUCCESS(rv, rv);
+ int64_t tagsRootId = TagsRootId();
bool more;
nsAutoString tags;
while (NS_SUCCEEDED((rv = stmt->ExecuteStep(&more))) && more) {
// Skip tags.
int64_t grandParentId;
nsresult rv = stmt->GetInt64(5, &grandParentId);
NS_ENSURE_SUCCESS(rv, rv);