mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
check for non-null connection in mozStorageTransaction helper. b=384224, r=sspitzer
This commit is contained in:
parent
6e83676554
commit
07b2c9ca5f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user