merge backout

This commit is contained in:
Marco Bonardo 2010-01-16 06:47:34 -08:00
commit fa99042ff5
4 changed files with 199 additions and 79 deletions

View File

@ -66,32 +66,6 @@ public:
NS_IMETHOD HandleResult(mozIStorageResultSet *); \
NS_IMETHOD HandleCompletion(PRUint16);
/**
* Macros to use for lazy statements initialization in Places services that use
* GetStatement() method.
*/
#define RETURN_IF_STMT(_stmt, _sql) \
PR_BEGIN_MACRO \
if (address_of(_stmt) == address_of(aStmt)) { \
if (!_stmt) { \
nsresult rv = mDBConn->CreateStatement(_sql, getter_AddRefs(_stmt)); \
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && _stmt, nsnull); \
} \
return _stmt.get(); \
} \
PR_END_MACRO
// Async statements don't need to be scoped, they are reset when done.
// So use this version for statements used async, scoped version for statements
// used sync.
#define DECLARE_AND_ASSIGN_LAZY_STMT(_localStmt, _globalStmt) \
mozIStorageStatement* _localStmt = GetStatement(_globalStmt); \
NS_ENSURE_STATE(_localStmt)
#define DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(_localStmt, _globalStmt) \
DECLARE_AND_ASSIGN_LAZY_STMT(_localStmt, _globalStmt); \
mozStorageStatementScoper scoper(_localStmt)
} // namespace places
} // namespace mozilla

View File

@ -50,7 +50,6 @@
#include "nsPlacesTables.h"
#include "nsPlacesIndexes.h"
#include "nsPlacesMacros.h"
#include "Helpers.h"
#include "mozilla/storage.h"
@ -121,6 +120,17 @@ nsAnnotationService::Init()
mozIStorageStatement*
nsAnnotationService::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
{
#define RETURN_IF_STMT(_stmt, _sql) \
PR_BEGIN_MACRO \
if (address_of(_stmt) == address_of(aStmt)) { \
if (!_stmt) { \
nsresult rv = mDBConn->CreateStatement(_sql, getter_AddRefs(_stmt)); \
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && _stmt, nsnull); \
} \
return _stmt.get(); \
} \
PR_END_MACRO
if (mShuttingDown)
return nsnull;
@ -225,6 +235,7 @@ nsAnnotationService::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
"WHERE b.id = ?2"));
return nsnull;
#undef RETURN_IF_STMT
}
@ -1280,7 +1291,10 @@ nsresult
nsAnnotationService::GetPagesWithAnnotationCOMArray(const nsACString& aName,
nsCOMArray<nsIURI>* _results)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetPagesWithAnnotation);
mozIStorageStatement* stmt = GetStatement(mDBGetPagesWithAnnotation);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindUTF8StringParameter(0, aName);
NS_ENSURE_SUCCESS(rv, rv);
@ -1343,7 +1357,9 @@ nsresult
nsAnnotationService::GetItemsWithAnnotationTArray(const nsACString& aName,
nsTArray<PRInt64>* _results)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemsWithAnnotation);
mozIStorageStatement* stmt = GetStatement(mDBGetItemsWithAnnotation);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindUTF8StringParameter(0, aName);
NS_ENSURE_SUCCESS(rv, rv);
@ -1958,7 +1974,9 @@ nsAnnotationService::StartSetAnnotation(nsIURI* aURI,
bool isItemAnnotation = (aItemId > 0);
// Ensure the annotation name exists.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(addNameStmt, mDBAddAnnotationName);
mozIStorageStatement* addNameStmt = GetStatement(mDBAddAnnotationName);
NS_ENSURE_STATE(addNameStmt);
mozStorageStatementScoper addNameScoper(addNameStmt);
nsresult rv = addNameStmt->BindUTF8StringParameter(0, aName);
NS_ENSURE_SUCCESS(rv, rv);
rv = addNameStmt->Execute();

View File

@ -373,6 +373,17 @@ nsFaviconService::Init()
mozIStorageStatement*
nsFaviconService::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
{
#define RETURN_IF_STMT(_stmt, _sql) \
PR_BEGIN_MACRO \
if (address_of(_stmt) == address_of(aStmt)) { \
if (!_stmt) { \
nsresult rv = mDBConn->CreateStatement(_sql, getter_AddRefs(_stmt)); \
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && _stmt, nsnull); \
} \
return _stmt.get(); \
} \
PR_END_MACRO
if (mShuttingDown)
return nsnull;
@ -423,6 +434,7 @@ nsFaviconService::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
")"));
return nsnull;
#undef RETURN_IF_STMT
}
@ -542,7 +554,9 @@ nsFaviconService::SetFaviconUrlForPageInternal(nsIURI* aPageURI,
mozStorageTransaction transaction(mDBConn, PR_FALSE);
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetIconInfo);
mozIStorageStatement* stmt = GetStatement(mDBGetIconInfo);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = BindStatementURI(stmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -565,7 +579,9 @@ nsFaviconService::SetFaviconUrlForPageInternal(nsIURI* aPageURI,
// We did not find any entry, so create a new one
// not-binded params are automatically nullified by mozStorage
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBInsertIcon);
mozIStorageStatement* stmt = GetStatement(mDBInsertIcon);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = BindStatementURI(stmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -573,7 +589,10 @@ nsFaviconService::SetFaviconUrlForPageInternal(nsIURI* aPageURI,
NS_ENSURE_SUCCESS(rv, rv);
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetIconInfo);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetIconInfo);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = BindStatementURI(getInfoStmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -590,7 +609,9 @@ nsFaviconService::SetFaviconUrlForPageInternal(nsIURI* aPageURI,
rv = historyService->GetUrlIdFor(aPageURI, &pageId, PR_TRUE);
NS_ENSURE_SUCCESS(rv, rv);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBSetPageFavicon);
mozIStorageStatement* stmt = GetStatement(mDBSetPageFavicon);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, pageId);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt64Parameter(1, iconId);
@ -773,7 +794,9 @@ nsFaviconService::SetFaviconData(nsIURI* aFaviconURI, const PRUint8* aData,
{
// this block forces the scoper to reset our statement: necessary for the
// next statement
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetIconInfo);
mozIStorageStatement* stmt = GetStatement(mDBGetIconInfo);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = BindStatementURI(stmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -883,7 +906,9 @@ nsFaviconService::GetFaviconData(nsIURI* aFaviconURI, nsACString& aMimeType,
NS_ENSURE_ARG_POINTER(aDataLen);
NS_ENSURE_ARG_POINTER(aData);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetData);
mozIStorageStatement* stmt = GetStatement(mDBGetData);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = BindStatementURI(stmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -939,7 +964,9 @@ nsFaviconService::GetFaviconForPage(nsIURI* aPageURI, nsIURI** _retval)
NS_ENSURE_ARG(aPageURI);
NS_ENSURE_ARG_POINTER(_retval);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetURL);
mozIStorageStatement* stmt = GetStatement(mDBGetURL);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = BindStatementURI(stmt, 0, aPageURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -961,7 +988,9 @@ nsFaviconService::GetFaviconImageForPage(nsIURI* aPageURI, nsIURI** _retval)
NS_ENSURE_ARG(aPageURI);
NS_ENSURE_ARG_POINTER(_retval);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetURL);
mozIStorageStatement* stmt = GetStatement(mDBGetURL);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = BindStatementURI(stmt, 0, aPageURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -1192,7 +1221,8 @@ nsFaviconService::GetFaviconDataAsync(nsIURI* aFaviconURI,
mozIStorageStatementCallback *aCallback)
{
NS_ASSERTION(aCallback, "Doesn't make sense to call this without a callback");
DECLARE_AND_ASSIGN_LAZY_STMT(stmt, mDBGetData);
mozIStorageStatement* stmt = GetStatement(mDBGetData);
NS_ENSURE_STATE(stmt);
nsresult rv = BindStatementURI(stmt, 0, aFaviconURI);
NS_ENSURE_SUCCESS(rv, rv);

View File

@ -57,7 +57,6 @@
#include "nsPlacesTables.h"
#include "nsPlacesIndexes.h"
#include "nsPlacesMacros.h"
#include "Helpers.h"
const PRInt32 nsNavBookmarks::kFindBookmarksIndex_ID = 0;
const PRInt32 nsNavBookmarks::kFindBookmarksIndex_Type = 1;
@ -223,6 +222,17 @@ nsNavBookmarks::InitTables(mozIStorageConnection* aDBConn)
mozIStorageStatement*
nsNavBookmarks::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
{
#define RETURN_IF_STMT(_stmt, _sql) \
PR_BEGIN_MACRO \
if (address_of(_stmt) == address_of(aStmt)) { \
if (!_stmt) { \
nsresult rv = mDBConn->CreateStatement(_sql, getter_AddRefs(_stmt)); \
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) && _stmt, nsnull); \
} \
return _stmt.get(); \
} \
PR_END_MACRO
if (mShuttingDown)
return nsnull;
@ -434,6 +444,7 @@ nsNavBookmarks::GetStatement(const nsCOMPtr<mozIStorageStatement>& aStmt)
"UPDATE moz_bookmarks SET fk = ?1, lastModified = ?2 WHERE id = ?3 "));
return nsnull;
#undef RETURN_IF_STMT
}
@ -850,7 +861,9 @@ nsNavBookmarks::RecursiveAddBookmarkHash(PRInt64 aPlaceID,
// recursively call ourselves again, because our recursive call will use the
// same statement.
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetRedirectDestinations);
mozIStorageStatement* stmt = GetStatement(mDBGetRedirectDestinations);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aCurrentSource);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt64Parameter(1, aMinTime);
@ -933,7 +946,10 @@ nsNavBookmarks::IsRealBookmark(PRInt64 aPlaceId)
PRInt64 bookmarkId;
PRBool isBookmark = GetBookmarksHash()->Get(aPlaceId, &bookmarkId);
if (isBookmark) {
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBIsRealBookmark);
mozIStorageStatement* stmt = GetStatement(mDBIsRealBookmark);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aPlaceId);
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Binding failed");
rv = stmt->BindInt32Parameter(1, TYPE_BOOKMARK);
@ -962,7 +978,9 @@ nsresult
nsNavBookmarks::IsBookmarkedInDatabase(PRInt64 aPlaceId,
PRBool* aIsBookmarked)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBIsBookmarkedInDatabase);
mozIStorageStatement* stmt = GetStatement(mDBIsBookmarkedInDatabase);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aPlaceId);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt32Parameter(1, TYPE_BOOKMARK);
@ -982,7 +1000,10 @@ nsNavBookmarks::AdjustIndices(PRInt64 aFolderId,
NS_ASSERTION(aStartIndex >= 0 && aEndIndex <= PR_INT32_MAX &&
aStartIndex <= aEndIndex, "Bad indices");
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBAdjustPosition);
mozIStorageStatement* stmt = GetStatement(mDBAdjustPosition);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt32Parameter(0, aDelta);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt64Parameter(1, aFolderId);
@ -1053,7 +1074,10 @@ nsNavBookmarks::InsertBookmarkInDB(PRInt64 aItemId,
{
NS_ASSERTION(_newItemId, "Null pointer passed to InsertBookmarkInDB!");
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBInsertBookmark);
mozIStorageStatement* stmt = GetStatement(mDBInsertBookmark);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv;
if (aItemId && aItemId != -1)
rv = stmt->BindInt64Parameter(kInsertBookmarkIndex_Id, aItemId);
@ -1101,7 +1125,9 @@ nsNavBookmarks::InsertBookmarkInDB(PRInt64 aItemId,
if (!aItemId || aItemId == -1) {
// Get the new inserted item id.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(lastInsertIdStmt, mDBGetLastBookmarkID);
mozIStorageStatement* lastInsertIdStmt = GetStatement(mDBGetLastBookmarkID);
NS_ENSURE_STATE(lastInsertIdStmt);
mozStorageStatementScoper scoper(lastInsertIdStmt);
PRBool hasResult;
rv = lastInsertIdStmt->ExecuteStep(&hasResult);
NS_ENSURE_SUCCESS(rv, rv);
@ -1254,7 +1280,10 @@ nsNavBookmarks::RemoveItem(PRInt64 aItemId)
nsCAutoString spec;
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetItemProperties);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = getInfoStmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
PRBool hasResult;
@ -1296,7 +1325,9 @@ nsNavBookmarks::RemoveItem(PRInt64 aItemId)
NS_ENSURE_SUCCESS(rv, rv);
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBRemoveItem);
mozIStorageStatement* stmt = GetStatement(mDBRemoveItem);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->Execute();
@ -1534,7 +1565,9 @@ nsNavBookmarks::GetLastChildId(PRInt64 aFolderId, PRInt64* aItemId)
NS_ASSERTION(aFolderId > 0, "Invalid folder id");
*aItemId = -1;
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetLastChildId);
mozIStorageStatement* stmt = GetStatement(mDBGetLastChildId);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
PRBool found;
@ -1567,7 +1600,10 @@ nsNavBookmarks::GetIdForItemAt(PRInt64 aFolder,
}
else {
// Get the item in aFolder with position aIndex.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetChildAt);
mozIStorageStatement* stmt = GetStatement(mDBGetChildAt);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aFolder);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt32Parameter(1, aIndex);
@ -1590,7 +1626,9 @@ nsNavBookmarks::GetParentAndIndexOfFolder(PRInt64 aFolderId,
PRInt64* _aParent,
PRInt32* _aIndex)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -1623,7 +1661,9 @@ nsNavBookmarks::RemoveFolder(PRInt64 aFolderId)
PRInt32 index, type;
nsCAutoString folderType;
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetItemProperties);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = getInfoStmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -1671,7 +1711,9 @@ nsNavBookmarks::RemoveFolder(PRInt64 aFolderId)
{
// Remove the folder from its parent.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBRemoveItem);
mozIStorageStatement* stmt = GetStatement(mDBRemoveItem);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->Execute();
@ -1729,7 +1771,9 @@ nsNavBookmarks::GetDescendantChildren(PRInt64 aFolderId,
nsresult rv;
{
// Collect children informations.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetChildren);
mozIStorageStatement* stmt = GetStatement(mDBGetChildren);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -1790,7 +1834,9 @@ nsNavBookmarks::RemoveFolderChildren(PRInt64 aFolderId)
PRUint16 itemType;
PRInt64 grandParentId;
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetItemProperties);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = getInfoStmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -1959,7 +2005,9 @@ nsNavBookmarks::MoveItem(PRInt64 aItemId, PRInt64 aNewParent, PRInt32 aIndex)
PRUint16 itemType;
nsCAutoString folderType;
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetItemProperties);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = getInfoStmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -1997,7 +2045,9 @@ nsNavBookmarks::MoveItem(PRInt64 aItemId, PRInt64 aNewParent, PRInt32 aIndex)
return NS_ERROR_INVALID_ARG;
}
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(getInfoStmt, mDBGetItemProperties);
mozIStorageStatement* getInfoStmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(getInfoStmt);
mozStorageStatementScoper scoper(getInfoStmt);
rv = getInfoStmt->BindInt64Parameter(0, ancestorId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2073,7 +2123,9 @@ nsNavBookmarks::MoveItem(PRInt64 aItemId, PRInt64 aNewParent, PRInt32 aIndex)
{
// Update parent and position.
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBMoveItem);
mozIStorageStatement* stmt = GetStatement(mDBMoveItem);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aNewParent);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt32Parameter(1, newIndex);
@ -2120,7 +2172,6 @@ nsNavBookmarks::SetItemDateInternal(mozIStorageStatement* aStatement,
{
NS_ENSURE_STATE(aStatement);
mozStorageStatementScoper scoper(aStatement);
nsresult rv = aStatement->BindInt64Parameter(0, aValue);
NS_ENSURE_SUCCESS(rv, rv);
rv = aStatement->BindInt64Parameter(1, aItemId);
@ -2165,7 +2216,9 @@ nsNavBookmarks::GetItemDateAdded(PRInt64 aItemId, PRTime* _dateAdded)
NS_ENSURE_ARG_MIN(aItemId, 1);
NS_ENSURE_ARG_POINTER(_dateAdded);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2210,7 +2263,9 @@ nsNavBookmarks::GetItemLastModified(PRInt64 aItemId, PRTime* aLastModified)
NS_ENSURE_ARG_MIN(aItemId, 1);
NS_ENSURE_ARG_POINTER(aLastModified);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2300,7 +2355,9 @@ nsNavBookmarks::GetItemIdForGUID(const nsAString& aGUID, PRInt64* aItemId)
{
NS_ENSURE_ARG_POINTER(aItemId);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemIdForGUID);
mozIStorageStatement* stmt = GetStatement(mDBGetItemIdForGUID);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindStringParameter(0, aGUID);
NS_ENSURE_SUCCESS(rv, rv);
@ -2326,7 +2383,10 @@ nsNavBookmarks::SetItemTitle(PRInt64 aItemId, const nsACString& aTitle)
nsresult rv = GetItemType(aItemId, &itemType);
NS_ENSURE_SUCCESS(rv, rv);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(statement, mDBSetItemTitle);
mozIStorageStatement* statement = GetStatement(mDBSetItemTitle);
NS_ENSURE_STATE(statement);
mozStorageStatementScoper scoper(statement);
// Support setting a null title, we support this in insertBookmark.
if (aTitle.IsVoid())
rv = statement->BindNullParameter(0);
@ -2358,7 +2418,10 @@ nsNavBookmarks::GetItemTitle(PRInt64 aItemId, nsACString& aTitle)
{
NS_ENSURE_ARG_MIN(aItemId, 1);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2381,7 +2444,9 @@ nsNavBookmarks::GetBookmarkURI(PRInt64 aItemId, nsIURI** aURI)
NS_ENSURE_ARG_MIN(aItemId, 1);
NS_ENSURE_ARG_POINTER(aURI);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2415,7 +2480,10 @@ nsNavBookmarks::GetItemType(PRInt64 aItemId, PRUint16* _type)
NS_ENSURE_ARG_MIN(aItemId, 1);
NS_ENSURE_ARG_POINTER(_type);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2437,7 +2505,9 @@ nsNavBookmarks::GetItemType(PRInt64 aItemId, PRUint16* _type)
nsresult
nsNavBookmarks::GetFolderType(PRInt64 aFolder, nsACString& aType)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aFolder);
NS_ENSURE_SUCCESS(rv, rv);
@ -2458,7 +2528,9 @@ nsNavBookmarks::ResultNodeForContainer(PRInt64 aID,
nsNavHistoryQueryOptions* aOptions,
nsNavHistoryResultNode** aNode)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aID);
NS_ENSURE_SUCCESS(rv, rv);
@ -2512,7 +2584,10 @@ nsNavBookmarks::QueryFolderChildren(PRInt64 aFolderId,
nsNavHistoryQueryOptions* aOptions,
nsCOMArray<nsNavHistoryResultNode>* aChildren)
{
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetChildren);
mozIStorageStatement* stmt = GetStatement(mDBGetChildren);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2599,7 +2674,10 @@ nsresult
nsNavBookmarks::FolderCount(PRInt64 aFolderId, PRInt32* _folderCount)
{
*_folderCount = 0;
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBFolderCount);
mozIStorageStatement* stmt = GetStatement(mDBFolderCount);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aFolderId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2729,7 +2807,10 @@ nsNavBookmarks::ChangeBookmarkURI(PRInt64 aBookmarkId, nsIURI* aNewURI)
rv = history->GetUrlIdFor(oldURI, &oldPlaceId, PR_FALSE);
NS_ENSURE_SUCCESS(rv, rv);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(statement, mDBChangeBookmarkURI);
mozIStorageStatement* statement = GetStatement(mDBChangeBookmarkURI);
NS_ENSURE_STATE(statement);
mozStorageStatementScoper scoper(statement);
rv = statement->BindInt64Parameter(0, placeId);
NS_ENSURE_SUCCESS(rv, rv);
PRTime lastModified = PR_Now();
@ -2786,7 +2867,9 @@ nsNavBookmarks::GetFolderIdForItem(PRInt64 aItemId, PRInt64* aFolderId)
NS_ENSURE_ARG_MIN(aItemId, 1);
NS_ENSURE_ARG_POINTER(aFolderId);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
@ -2812,7 +2895,10 @@ nsNavBookmarks::GetBookmarkIdsForURITArray(nsIURI* aURI,
{
NS_ENSURE_ARG(aURI);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBFindURIBookmarks);
mozIStorageStatement* stmt = GetStatement(mDBFindURIBookmarks);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = BindStatementURI(stmt, 0, aURI);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt32Parameter(1, TYPE_BOOKMARK);
@ -2870,7 +2956,9 @@ nsNavBookmarks::GetItemIndex(PRInt64 aItemId, PRInt32* _index)
*_index = -1;
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemIndex);
mozIStorageStatement* stmt = GetStatement(mDBGetItemIndex);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
PRBool hasResult;
@ -2925,7 +3013,9 @@ nsNavBookmarks::SetItemIndex(PRInt64 aItemId, PRInt32 aNewIndex)
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_TRUE(aNewIndex < folderCount, NS_ERROR_INVALID_ARG);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBSetItemIndex);
mozIStorageStatement* stmt = GetStatement(mDBSetItemIndex);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, rv);
rv = stmt->BindInt32Parameter(1, aNewIndex);
@ -3040,7 +3130,9 @@ nsNavBookmarks::GetKeywordForURI(nsIURI* aURI, nsAString& aKeyword)
NS_ENSURE_ARG(aURI);
aKeyword.Truncate(0);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetKeywordForURI);
mozIStorageStatement* stmt = GetStatement(mDBGetKeywordForURI);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = BindStatementURI(stmt, 0, aURI);
NS_ENSURE_SUCCESS(rv, rv);
@ -3064,7 +3156,9 @@ nsNavBookmarks::GetKeywordForBookmark(PRInt64 aBookmarkId, nsAString& aKeyword)
NS_ENSURE_ARG_MIN(aBookmarkId, 1);
aKeyword.Truncate(0);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetKeywordForBookmark);
mozIStorageStatement* stmt = GetStatement(mDBGetKeywordForBookmark);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aBookmarkId);
NS_ENSURE_SUCCESS(rv, rv);
@ -3093,7 +3187,9 @@ nsNavBookmarks::GetURIForKeyword(const nsAString& aKeyword, nsIURI** aURI)
nsAutoString kwd(aKeyword);
ToLowerCase(kwd);
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetURIForKeyword);
mozIStorageStatement* stmt = GetStatement(mDBGetURIForKeyword);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindStringParameter(0, kwd);
NS_ENSURE_SUCCESS(rv, rv);
@ -3395,7 +3491,9 @@ nsNavBookmarks::OnItemAnnotationRemoved(PRInt64 aItemId, const nsACString& aName
PRBool
nsNavBookmarks::ItemExists(PRInt64 aItemId) {
DECLARE_AND_ASSIGN_SCOPED_LAZY_STMT(stmt, mDBGetItemProperties);
mozIStorageStatement* stmt = GetStatement(mDBGetItemProperties);
NS_ENSURE_STATE(stmt);
mozStorageStatementScoper scoper(stmt);
nsresult rv = stmt->BindInt64Parameter(0, aItemId);
NS_ENSURE_SUCCESS(rv, PR_FALSE);