diff options
author | Ben Murdoch <benm@google.com> | 2011-05-24 11:24:40 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-06-02 09:53:15 +0100 |
commit | 81bc750723a18f21cd17d1b173cd2a4dda9cea6e (patch) | |
tree | 7a9e5ed86ff429fd347a25153107221543909b19 /Source/WebCore/storage/IDBCursor.cpp | |
parent | 94088a6d336c1dd80a1e734af51e96abcbb689a7 (diff) | |
download | external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.zip external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.gz external_webkit-81bc750723a18f21cd17d1b173cd2a4dda9cea6e.tar.bz2 |
Merge WebKit at r80534: Intial merge by Git
Change-Id: Ia7a83357124c9e1cdb1debf55d9661ec0bd09a61
Diffstat (limited to 'Source/WebCore/storage/IDBCursor.cpp')
-rw-r--r-- | Source/WebCore/storage/IDBCursor.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/Source/WebCore/storage/IDBCursor.cpp b/Source/WebCore/storage/IDBCursor.cpp index 531cae1..9b1ebf6 100644 --- a/Source/WebCore/storage/IDBCursor.cpp +++ b/Source/WebCore/storage/IDBCursor.cpp @@ -39,13 +39,20 @@ namespace WebCore { -IDBCursor::IDBCursor(PassRefPtr<IDBCursorBackendInterface> backend, IDBRequest* request, IDBTransaction* transaction) +PassRefPtr<IDBCursor> IDBCursor::create(PassRefPtr<IDBCursorBackendInterface> backend, IDBRequest* request, IDBAny* source, IDBTransaction* transaction) +{ + return adoptRef(new IDBCursor(backend, request, source, transaction)); +} + +IDBCursor::IDBCursor(PassRefPtr<IDBCursorBackendInterface> backend, IDBRequest* request, IDBAny* source, IDBTransaction* transaction) : m_backend(backend) , m_request(request) + , m_source(source) , m_transaction(transaction) { ASSERT(m_backend); ASSERT(m_request); + ASSERT(m_source->type() == IDBAny::IDBObjectStoreType || m_source->type() == IDBAny::IDBIndexType); ASSERT(m_transaction); } @@ -63,17 +70,29 @@ PassRefPtr<IDBKey> IDBCursor::key() const return m_backend->key(); } -PassRefPtr<IDBAny> IDBCursor::value() const +PassRefPtr<IDBKey> IDBCursor::primaryKey() const +{ + return m_backend->primaryKey(); +} + +PassRefPtr<SerializedScriptValue> IDBCursor::value() const { return m_backend->value(); } +IDBAny* IDBCursor::source() const +{ + return m_source.get(); +} + PassRefPtr<IDBRequest> IDBCursor::update(ScriptExecutionContext* context, PassRefPtr<SerializedScriptValue> value, ExceptionCode& ec) { RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this), m_transaction.get()); m_backend->update(value, request, ec); - if (ec) + if (ec) { + request->markEarlyDeath(); return 0; + } return request.release(); } @@ -91,8 +110,10 @@ PassRefPtr<IDBRequest> IDBCursor::deleteFunction(ScriptExecutionContext* context { RefPtr<IDBRequest> request = IDBRequest::create(context, IDBAny::create(this), m_transaction.get()); m_backend->deleteFunction(request, ec); - if (ec) + if (ec) { + request->markEarlyDeath(); return 0; + } return request.release(); } |