check for non-null connection in mozStorageTransaction helper. b=384224, r=sspitzer

This commit is contained in:
dwitte@stanford.edu 2007-06-13 21:58:52 -07:00
parent 6e83676554
commit 07b2c9ca5f

View File

@ -64,18 +64,21 @@ public:
PRBool aCommitOnComplete,
PRInt32 aType = mozIStorageConnection::TRANSACTION_DEFERRED)
: mConnection(aConnection),
mHasTransaction(PR_FALSE),
mCommitOnComplete(aCommitOnComplete),
mCompleted(PR_FALSE)
{
PRBool transactionInProgress = PR_FALSE;
mConnection->GetTransactionInProgress(&transactionInProgress);
mHasTransaction = ! transactionInProgress;
if (mHasTransaction)
mConnection->BeginTransactionAs(aType);
if (mConnection) {
PRBool transactionInProgress = PR_FALSE;
mConnection->GetTransactionInProgress(&transactionInProgress);
mHasTransaction = ! transactionInProgress;
if (mHasTransaction)
mConnection->BeginTransactionAs(aType);
}
}
~mozStorageTransaction()
{
if (mHasTransaction && ! mCompleted) {
if (mConnection && mHasTransaction && ! mCompleted) {
if (mCommitOnComplete)
mConnection->CommitTransaction();
else
@ -90,8 +93,8 @@ public:
*/
nsresult Commit()
{
if (mCompleted)
return NS_OK; // already done
if (!mConnection || mCompleted)
return NS_OK; // no connection, or already done
mCompleted = PR_TRUE;
if (! mHasTransaction)
return NS_OK; // transaction not ours, ignore
@ -105,8 +108,8 @@ public:
*/
nsresult Rollback()
{
if (mCompleted)
return NS_OK; // already done
if (!mConnection || mCompleted)
return NS_OK; // no connection, or already done
mCompleted = PR_TRUE;
if (! mHasTransaction)
return NS_ERROR_FAILURE;