summaryrefslogtreecommitdiffstats
path: root/WebCore/storage/IDBTransaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/storage/IDBTransaction.cpp')
-rw-r--r--WebCore/storage/IDBTransaction.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/WebCore/storage/IDBTransaction.cpp b/WebCore/storage/IDBTransaction.cpp
index 4e93378..a223b7f 100644
--- a/WebCore/storage/IDBTransaction.cpp
+++ b/WebCore/storage/IDBTransaction.cpp
@@ -32,6 +32,7 @@
#include "EventException.h"
#include "IDBAbortEvent.h"
#include "IDBDatabase.h"
+#include "IDBDatabaseException.h"
#include "IDBObjectStore.h"
#include "IDBObjectStoreBackendInterface.h"
#include "IDBPendingTransactionMonitor.h"
@@ -46,7 +47,7 @@ IDBTransaction::IDBTransaction(ScriptExecutionContext* context, PassRefPtr<IDBTr
, m_stopped(false)
, m_timer(this, &IDBTransaction::timerFired)
{
- IDBPendingTransactionMonitor::addPendingTransaction(m_backend->id());
+ IDBPendingTransactionMonitor::addPendingTransaction(m_backend.get());
}
IDBTransaction::~IDBTransaction()
@@ -66,7 +67,11 @@ IDBDatabase* IDBTransaction::db()
PassRefPtr<IDBObjectStore> IDBTransaction::objectStore(const String& name, const ExceptionCode&)
{
RefPtr<IDBObjectStoreBackendInterface> objectStoreBackend = m_backend->objectStore(name);
- RefPtr<IDBObjectStore> objectStore = IDBObjectStore::create(objectStoreBackend);
+ if (!objectStoreBackend) {
+ // FIXME: throw IDBDatabaseException::NOT_ALLOWED_ERR.
+ return 0;
+ }
+ RefPtr<IDBObjectStore> objectStore = IDBObjectStore::create(objectStoreBackend, m_backend.get());
return objectStore.release();
}