diff options
Diffstat (limited to 'WebCore/storage/IDBTransaction.cpp')
-rw-r--r-- | WebCore/storage/IDBTransaction.cpp | 9 |
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(); } |