<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[164314] trunk/Source/WebCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/164314">164314</a></dd>
<dt>Author</dt> <dd>zandobersek@gmail.com</dd>
<dt>Date</dt> <dd>2014-02-18 14:08:45 -0800 (Tue, 18 Feb 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Move IndexedDB module, LevelDB code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=128964
Reviewed by Andreas Kling.
Replace uses of OwnPtr and PassOwnPtr in the IndexedDB module and LevelDB platform code with std::unique_ptr.
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
(WebCore::IDBDatabaseBackend::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackend::processPendingCalls):
(WebCore::IDBDatabaseBackend::processPendingOpenCalls):
(WebCore::IDBDatabaseBackend::openConnection):
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
(WebCore::IDBDatabaseBackend::close):
* Modules/indexeddb/IDBDatabaseBackend.h:
(WebCore::IDBDatabaseBackend::hasPendingSecondHalfOpen):
(WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen):
* Modules/indexeddb/IDBPendingDeleteCall.h:
(WebCore::IDBPendingDeleteCall::IDBPendingDeleteCall):
* Modules/indexeddb/IDBPendingOpenCall.h:
(WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
* Modules/indexeddb/IDBTransactionCoordinator.h:
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::setUpMetadata):
(WebCore::DefaultLevelDBFactory::openLevelDB):
(WebCore::IDBBackingStoreLevelDB::IDBBackingStoreLevelDB):
(WebCore::IDBBackingStoreLevelDB::~IDBBackingStoreLevelDB):
(WebCore::IDBBackingStoreLevelDB::open):
(WebCore::IDBBackingStoreLevelDB::openInMemory):
(WebCore::IDBBackingStoreLevelDB::create):
(WebCore::IDBBackingStoreLevelDB::getDatabaseNames):
(WebCore::deleteRange):
(WebCore::IDBBackingStoreLevelDB::deleteDatabase):
(WebCore::IDBBackingStoreLevelDB::getObjectStores):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::getIndexes):
(WebCore::findGreatestKeyLessThanOrEqual):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* platform/leveldb/LevelDBDatabase.cpp:
(WebCore::LevelDBDatabase::~LevelDBDatabase):
(WebCore::LevelDBDatabase::open):
(WebCore::LevelDBDatabase::openInMemory):
(WebCore::IteratorImpl::IteratorImpl):
(WebCore::LevelDBDatabase::createIterator):
* platform/leveldb/LevelDBDatabase.h:
* platform/leveldb/LevelDBTransaction.cpp:
(WebCore::LevelDBTransaction::commit):
(WebCore::LevelDBTransaction::createIterator):
(WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
(WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
(WebCore::LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction):
* platform/leveldb/LevelDBTransaction.h:
* platform/leveldb/LevelDBWriteBatch.cpp:
(WebCore::LevelDBWriteBatch::LevelDBWriteBatch):
* platform/leveldb/LevelDBWriteBatch.h:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBCursorBackendh">trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseBackendcpp">trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBDatabaseBackendh">trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBPendingDeleteCallh">trunk/Source/WebCore/Modules/indexeddb/IDBPendingDeleteCall.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBPendingOpenCallh">trunk/Source/WebCore/Modules/indexeddb/IDBPendingOpenCall.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactionBackendOperationscpp">trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactionCoordinatorcpp">trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBTransactionCoordinatorh">trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreCursorLevelDBh">trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreLevelDBcpp">trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreLevelDBh">trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBDatabasecpp">trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBDatabaseh">trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.h</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBTransactioncpp">trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBTransactionh">trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.h</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBWriteBatchcpp">trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformleveldbLevelDBWriteBatchh">trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/ChangeLog        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -1,3 +1,69 @@
</span><ins>+2014-02-18 Zan Dobersek <zdobersek@igalia.com>
+
+ Move IndexedDB module, LevelDB code to std::unique_ptr
+ https://bugs.webkit.org/show_bug.cgi?id=128964
+
+ Reviewed by Andreas Kling.
+
+ Replace uses of OwnPtr and PassOwnPtr in the IndexedDB module and LevelDB platform code with std::unique_ptr.
+
+ * Modules/indexeddb/IDBCursorBackend.h:
+ * Modules/indexeddb/IDBDatabaseBackend.cpp:
+ (WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
+ (WebCore::IDBDatabaseBackend::transactionFinishedAndAbortFired):
+ (WebCore::IDBDatabaseBackend::processPendingCalls):
+ (WebCore::IDBDatabaseBackend::processPendingOpenCalls):
+ (WebCore::IDBDatabaseBackend::openConnection):
+ (WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
+ (WebCore::IDBDatabaseBackend::deleteDatabase):
+ (WebCore::IDBDatabaseBackend::close):
+ * Modules/indexeddb/IDBDatabaseBackend.h:
+ (WebCore::IDBDatabaseBackend::hasPendingSecondHalfOpen):
+ (WebCore::IDBDatabaseBackend::setPendingSecondHalfOpen):
+ * Modules/indexeddb/IDBPendingDeleteCall.h:
+ (WebCore::IDBPendingDeleteCall::IDBPendingDeleteCall):
+ * Modules/indexeddb/IDBPendingOpenCall.h:
+ (WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
+ * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
+ (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
+ * Modules/indexeddb/IDBTransactionCoordinator.cpp:
+ * Modules/indexeddb/IDBTransactionCoordinator.h:
+ * Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h:
+ * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
+ (WebCore::setUpMetadata):
+ (WebCore::DefaultLevelDBFactory::openLevelDB):
+ (WebCore::IDBBackingStoreLevelDB::IDBBackingStoreLevelDB):
+ (WebCore::IDBBackingStoreLevelDB::~IDBBackingStoreLevelDB):
+ (WebCore::IDBBackingStoreLevelDB::open):
+ (WebCore::IDBBackingStoreLevelDB::openInMemory):
+ (WebCore::IDBBackingStoreLevelDB::create):
+ (WebCore::IDBBackingStoreLevelDB::getDatabaseNames):
+ (WebCore::deleteRange):
+ (WebCore::IDBBackingStoreLevelDB::deleteDatabase):
+ (WebCore::IDBBackingStoreLevelDB::getObjectStores):
+ (WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
+ (WebCore::IDBBackingStoreLevelDB::getIndexes):
+ (WebCore::findGreatestKeyLessThanOrEqual):
+ (WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
+ * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
+ * platform/leveldb/LevelDBDatabase.cpp:
+ (WebCore::LevelDBDatabase::~LevelDBDatabase):
+ (WebCore::LevelDBDatabase::open):
+ (WebCore::LevelDBDatabase::openInMemory):
+ (WebCore::IteratorImpl::IteratorImpl):
+ (WebCore::LevelDBDatabase::createIterator):
+ * platform/leveldb/LevelDBDatabase.h:
+ * platform/leveldb/LevelDBTransaction.cpp:
+ (WebCore::LevelDBTransaction::commit):
+ (WebCore::LevelDBTransaction::createIterator):
+ (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
+ (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
+ (WebCore::LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction):
+ * platform/leveldb/LevelDBTransaction.h:
+ * platform/leveldb/LevelDBWriteBatch.cpp:
+ (WebCore::LevelDBWriteBatch::LevelDBWriteBatch):
+ * platform/leveldb/LevelDBWriteBatch.h:
+
</ins><span class="cx"> 2014-02-18 David Kilzer <ddkilzer@apple.com>
</span><span class="cx">
</span><span class="cx"> Follow-up: Add type-checked casts for StyleImage and subclasses
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBCursorBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursorBackend.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -32,8 +32,6 @@
</span><span class="cx"> #include "IDBDatabaseBackend.h"
</span><span class="cx"> #include "IDBTransactionBackend.h"
</span><span class="cx"> #include "SharedBuffer.h"
</span><del>-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseBackendcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> , m_identifier(uniqueIdentifier)
</span><span class="cx"> , m_factory(factory)
</span><span class="cx"> , m_serverConnection(serverConnection)
</span><del>- , m_transactionCoordinator(IDBTransactionCoordinator::create())
</del><ins>+ , m_transactionCoordinator(std::make_unique<IDBTransactionCoordinator>())
</ins><span class="cx"> , m_closingConnection(false)
</span><span class="cx"> , m_didOpenInternal(false)
</span><span class="cx"> {
</span><span class="lines">@@ -346,7 +346,7 @@
</span><span class="cx"> // FIXME: When we no longer support setVersion, assert such a thing.
</span><span class="cx"> if (m_pendingSecondHalfOpen) {
</span><span class="cx"> m_pendingSecondHalfOpen->callbacks()->onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, "Version change transaction was aborted in upgradeneeded event handler."));
</span><del>- m_pendingSecondHalfOpen.release();
</del><ins>+ m_pendingSecondHalfOpen = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> processPendingCalls();
</span><span class="cx"> }
</span><span class="lines">@@ -375,7 +375,7 @@
</span><span class="cx"> ASSERT(m_pendingSecondHalfOpen->version() == m_metadata.version);
</span><span class="cx"> ASSERT(m_metadata.id != InvalidId);
</span><span class="cx"> m_pendingSecondHalfOpen->callbacks()->onSuccess(this, this->metadata());
</span><del>- m_pendingSecondHalfOpen.release();
</del><ins>+ m_pendingSecondHalfOpen = nullptr;
</ins><span class="cx"> // Fall through when complete, as pending deletes may be (partially) unblocked.
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -388,7 +388,7 @@
</span><span class="cx"> if (!m_pendingDeleteCalls.isEmpty() && isDeleteDatabaseBlocked())
</span><span class="cx"> return;
</span><span class="cx"> while (!m_pendingDeleteCalls.isEmpty()) {
</span><del>- OwnPtr<IDBPendingDeleteCall> pendingDeleteCall = m_pendingDeleteCalls.takeFirst();
</del><ins>+ std::unique_ptr<IDBPendingDeleteCall> pendingDeleteCall = m_pendingDeleteCalls.takeFirst();
</ins><span class="cx"> m_deleteCallbacksWaitingCompletion.add(pendingDeleteCall->callbacks());
</span><span class="cx"> deleteDatabaseAsync(pendingDeleteCall->callbacks());
</span><span class="cx"> }
</span><span class="lines">@@ -410,16 +410,16 @@
</span><span class="cx"> void IDBDatabaseBackend::processPendingOpenCalls(bool success)
</span><span class="cx"> {
</span><span class="cx"> // Open calls can be requeued if an open call started a version change transaction or deletes the database.
</span><del>- Deque<OwnPtr<IDBPendingOpenCall>> pendingOpenCalls;
</del><ins>+ Deque<std::unique_ptr<IDBPendingOpenCall>> pendingOpenCalls;
</ins><span class="cx"> m_pendingOpenCalls.swap(pendingOpenCalls);
</span><span class="cx">
</span><span class="cx"> while (!pendingOpenCalls.isEmpty()) {
</span><del>- OwnPtr<IDBPendingOpenCall> pendingOpenCall = pendingOpenCalls.takeFirst();
</del><ins>+ std::unique_ptr<IDBPendingOpenCall> pendingOpenCall = pendingOpenCalls.takeFirst();
</ins><span class="cx"> if (success) {
</span><span class="cx"> if (m_metadata.id == InvalidId) {
</span><span class="cx"> // This database was deleted then quickly re-opened.
</span><span class="cx"> // openInternalAsync() will recreate it in the backing store and then resume processing pending callbacks.
</span><del>- pendingOpenCalls.prepend(pendingOpenCall.release());
</del><ins>+ pendingOpenCalls.prepend(std::move(pendingOpenCall));
</ins><span class="cx"> pendingOpenCalls.swap(m_pendingOpenCalls);
</span><span class="cx">
</span><span class="cx"> openInternalAsync();
</span><span class="lines">@@ -450,7 +450,7 @@
</span><span class="cx"> RefPtr<IDBCallbacks> callbacks = prpCallbacks;
</span><span class="cx"> RefPtr<IDBDatabaseCallbacks> databaseCallbacks = prpDatabaseCallbacks;
</span><span class="cx">
</span><del>- m_pendingOpenCalls.append(IDBPendingOpenCall::create(*callbacks, *databaseCallbacks, transactionId, version));
</del><ins>+ m_pendingOpenCalls.append(std::make_unique<IDBPendingOpenCall>(*callbacks, *databaseCallbacks, transactionId, version));
</ins><span class="cx">
</span><span class="cx"> processPendingCalls();
</span><span class="cx"> }
</span><span class="lines">@@ -513,7 +513,7 @@
</span><span class="cx"> callbacks->onBlocked(m_metadata.version);
</span><span class="cx"> // FIXME: Add test for m_runningVersionChangeTransaction.
</span><span class="cx"> if (m_runningVersionChangeTransaction || connectionCount()) {
</span><del>- m_pendingOpenCalls.append(IDBPendingOpenCall::create(*callbacks, *databaseCallbacks, transactionId, requestedVersion));
</del><ins>+ m_pendingOpenCalls.append(std::make_unique<IDBPendingOpenCall>(*callbacks, *databaseCallbacks, transactionId, requestedVersion));
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -539,7 +539,7 @@
</span><span class="cx"> // VersionChangeEvents are received, not just set up to fire.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=71130
</span><span class="cx"> callbacks->onBlocked(m_metadata.version);
</span><del>- m_pendingDeleteCalls.append(IDBPendingDeleteCall::create(callbacks.release()));
</del><ins>+ m_pendingDeleteCalls.append(std::make_unique<IDBPendingDeleteCall>(callbacks.release()));
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx"> deleteDatabaseAsync(callbacks.release());
</span><span class="lines">@@ -583,7 +583,7 @@
</span><span class="cx"> m_databaseCallbacksSet.remove(callbacks);
</span><span class="cx"> if (m_pendingSecondHalfOpen && m_pendingSecondHalfOpen->databaseCallbacks() == callbacks) {
</span><span class="cx"> m_pendingSecondHalfOpen->callbacks()->onError(IDBDatabaseError::create(IDBDatabaseException::AbortError, "The connection was closed."));
</span><del>- m_pendingSecondHalfOpen.release();
</del><ins>+ m_pendingSecondHalfOpen = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (connectionCount() > 1)
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBDatabaseBackendh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBDatabaseBackend.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -118,8 +118,8 @@
</span><span class="cx"> const IDBDatabaseMetadata& metadata() const { return m_metadata; }
</span><span class="cx"> void setCurrentVersion(uint64_t version) { m_metadata.version = version; }
</span><span class="cx">
</span><del>- bool hasPendingSecondHalfOpen() { return m_pendingSecondHalfOpen; }
- void setPendingSecondHalfOpen(PassOwnPtr<IDBPendingOpenCall> pendingOpenCall) { m_pendingSecondHalfOpen = pendingOpenCall; }
</del><ins>+ bool hasPendingSecondHalfOpen() { return m_pendingSecondHalfOpen.get(); }
+ void setPendingSecondHalfOpen(std::unique_ptr<IDBPendingOpenCall> pendingOpenCall) { m_pendingSecondHalfOpen = std::move(pendingOpenCall); }
</ins><span class="cx">
</span><span class="cx"> IDBFactoryBackendInterface& factoryBackend() { return *m_factory; }
</span><span class="cx">
</span><span class="lines">@@ -149,16 +149,16 @@
</span><span class="cx"> RefPtr<IDBFactoryBackendInterface> m_factory;
</span><span class="cx"> Ref<IDBServerConnection> m_serverConnection;
</span><span class="cx">
</span><del>- OwnPtr<IDBTransactionCoordinator> m_transactionCoordinator;
</del><ins>+ std::unique_ptr<IDBTransactionCoordinator> m_transactionCoordinator;
</ins><span class="cx"> RefPtr<IDBTransactionBackend> m_runningVersionChangeTransaction;
</span><span class="cx">
</span><span class="cx"> typedef HashMap<int64_t, IDBTransactionBackend*> TransactionMap;
</span><span class="cx"> TransactionMap m_transactions;
</span><span class="cx">
</span><del>- Deque<OwnPtr<IDBPendingOpenCall>> m_pendingOpenCalls;
- OwnPtr<IDBPendingOpenCall> m_pendingSecondHalfOpen;
</del><ins>+ Deque<std::unique_ptr<IDBPendingOpenCall>> m_pendingOpenCalls;
+ std::unique_ptr<IDBPendingOpenCall> m_pendingSecondHalfOpen;
</ins><span class="cx">
</span><del>- Deque<OwnPtr<IDBPendingDeleteCall>> m_pendingDeleteCalls;
</del><ins>+ Deque<std::unique_ptr<IDBPendingDeleteCall>> m_pendingDeleteCalls;
</ins><span class="cx"> HashSet<RefPtr<IDBCallbacks>> m_deleteCallbacksWaitingCompletion;
</span><span class="cx">
</span><span class="cx"> typedef ListHashSet<RefPtr<IDBDatabaseCallbacks>> DatabaseCallbacksSet;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBPendingDeleteCallh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBPendingDeleteCall.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBPendingDeleteCall.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBPendingDeleteCall.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #define IDBPendingDeleteCall_h
</span><span class="cx">
</span><span class="cx"> #include "IDBCallbacks.h"
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="lines">@@ -36,17 +35,14 @@
</span><span class="cx">
</span><span class="cx"> class IDBPendingDeleteCall {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<IDBPendingDeleteCall> create(PassRefPtr<IDBCallbacks> callbacks)
</del><ins>+ explicit IDBPendingDeleteCall(PassRefPtr<IDBCallbacks> callbacks)
+ : m_callbacks(callbacks)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new IDBPendingDeleteCall(callbacks));
</del><span class="cx"> }
</span><ins>+
</ins><span class="cx"> IDBCallbacks* callbacks() { return m_callbacks.get(); }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- IDBPendingDeleteCall(PassRefPtr<IDBCallbacks> callbacks)
- : m_callbacks(callbacks)
- {
- }
</del><span class="cx"> RefPtr<IDBCallbacks> m_callbacks;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBPendingOpenCallh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBPendingOpenCall.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBPendingOpenCall.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBPendingOpenCall.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #ifndef IDBPendingOpenCall_h
</span><span class="cx"> #define IDBPendingOpenCall_h
</span><span class="cx">
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="lines">@@ -38,23 +37,20 @@
</span><span class="cx">
</span><span class="cx"> class IDBPendingOpenCall {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<IDBPendingOpenCall> create(IDBCallbacks& callbacks, IDBDatabaseCallbacks& databaseCallbacks, int64_t transactionId, uint64_t version)
</del><ins>+ IDBPendingOpenCall(IDBCallbacks& callbacks, IDBDatabaseCallbacks& databaseCallbacks, int64_t transactionId, uint64_t version)
+ : m_callbacks(&callbacks)
+ , m_databaseCallbacks(&databaseCallbacks)
+ , m_version(version)
+ , m_transactionId(transactionId)
</ins><span class="cx"> {
</span><del>- return adoptPtr(new IDBPendingOpenCall(callbacks, databaseCallbacks, transactionId, version));
</del><span class="cx"> }
</span><ins>+
</ins><span class="cx"> IDBCallbacks* callbacks() { return m_callbacks.get(); }
</span><span class="cx"> IDBDatabaseCallbacks* databaseCallbacks() { return m_databaseCallbacks.get(); }
</span><span class="cx"> uint64_t version() { return m_version; }
</span><span class="cx"> int64_t transactionId() const { return m_transactionId; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- IDBPendingOpenCall(IDBCallbacks& callbacks, IDBDatabaseCallbacks& databaseCallbacks, int64_t transactionId, uint64_t version)
- : m_callbacks(&callbacks)
- , m_databaseCallbacks(&databaseCallbacks)
- , m_version(version)
- , m_transactionId(transactionId)
- {
- }
</del><span class="cx"> RefPtr<IDBCallbacks> m_callbacks;
</span><span class="cx"> RefPtr<IDBDatabaseCallbacks> m_databaseCallbacks;
</span><span class="cx"> uint64_t m_version;
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactionBackendOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionBackendOperations.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -249,7 +249,7 @@
</span><span class="cx"> } else {
</span><span class="cx"> ASSERT(!m_transaction->database().hasPendingSecondHalfOpen());
</span><span class="cx"> m_transaction->database().setCurrentVersion(m_version);
</span><del>- m_transaction->database().setPendingSecondHalfOpen(IDBPendingOpenCall::create(*m_callbacks, *m_databaseCallbacks, m_transaction->id(), m_version));
</del><ins>+ m_transaction->database().setPendingSecondHalfOpen(std::make_unique<IDBPendingOpenCall>(*m_callbacks, *m_databaseCallbacks, m_transaction->id(), m_version));
</ins><span class="cx"> m_callbacks->onUpgradeNeeded(oldVersion, &m_transaction->database(), m_transaction->database().metadata());
</span><span class="cx"> }
</span><span class="cx"> completionCallback();
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactionCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -33,11 +33,6 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-PassOwnPtr<IDBTransactionCoordinator> IDBTransactionCoordinator::create()
-{
- return adoptPtr(new IDBTransactionCoordinator());
-}
-
</del><span class="cx"> IDBTransactionCoordinator::IDBTransactionCoordinator()
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBTransactionCoordinatorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBTransactionCoordinator.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx">
</span><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/HashMap.h>
</span><span class="cx"> #include <wtf/ListHashSet.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="lines">@@ -39,7 +40,7 @@
</span><span class="cx"> // Transactions are executed in the order the were created.
</span><span class="cx"> class IDBTransactionCoordinator {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<IDBTransactionCoordinator> create();
</del><ins>+ IDBTransactionCoordinator();
</ins><span class="cx"> virtual ~IDBTransactionCoordinator();
</span><span class="cx">
</span><span class="cx"> // Called by transactions as they start and finish.
</span><span class="lines">@@ -53,8 +54,6 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- IDBTransactionCoordinator();
-
</del><span class="cx"> void processStartedTransactions();
</span><span class="cx"> bool canRunTransaction(IDBTransactionBackend*);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreCursorLevelDBh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include "IDBKey.h"
</span><span class="cx"> #include "IDBRecordIdentifier.h"
</span><span class="cx"> #include "LevelDBIterator.h"
</span><ins>+#include <memory>
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(INDEXED_DATABASE)
</span><span class="cx"> #if USE(LEVELDB)
</span><span class="lines">@@ -88,7 +89,7 @@
</span><span class="cx"> int64_t m_cursorID;
</span><span class="cx"> LevelDBTransaction* m_transaction;
</span><span class="cx"> const CursorOptions m_cursorOptions;
</span><del>- OwnPtr<LevelDBIterator> m_iterator;
</del><ins>+ std::unique_ptr<LevelDBIterator> m_iterator;
</ins><span class="cx"> RefPtr<IDBKey> m_currentKey;
</span><span class="cx"> RefPtr<IDBRecordIdentifier> m_recordIdentifier;
</span><span class="cx"> };
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreLevelDBcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -250,7 +250,7 @@
</span><span class="cx"> putInt(transaction.get(), schemaVersionKey, dbSchemaVersion);
</span><span class="cx"> const Vector<char> startKey = DatabaseNameKey::encodeMinKeyForOrigin(origin);
</span><span class="cx"> const Vector<char> stopKey = DatabaseNameKey::encodeStopKeyForOrigin(origin);
</span><del>- OwnPtr<LevelDBIterator> it = db->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = db->createIterator();
</ins><span class="cx"> for (it->seek(startKey); it->isValid() && compareKeys(it->key(), stopKey) < 0; it->next()) {
</span><span class="cx"> int64_t databaseId = 0;
</span><span class="cx"> found = false;
</span><span class="lines">@@ -326,7 +326,7 @@
</span><span class="cx">
</span><span class="cx"> class DefaultLevelDBFactory : public LevelDBFactory {
</span><span class="cx"> public:
</span><del>- virtual PassOwnPtr<LevelDBDatabase> openLevelDB(const String& fileName, const LevelDBComparator* comparator)
</del><ins>+ virtual std::unique_ptr<LevelDBDatabase> openLevelDB(const String& fileName, const LevelDBComparator* comparator)
</ins><span class="cx"> {
</span><span class="cx"> return LevelDBDatabase::open(fileName, comparator);
</span><span class="cx"> }
</span><span class="lines">@@ -336,10 +336,10 @@
</span><span class="cx"> }
</span><span class="cx"> };
</span><span class="cx">
</span><del>-IDBBackingStoreLevelDB::IDBBackingStoreLevelDB(const String& identifier, PassOwnPtr<LevelDBDatabase> db, PassOwnPtr<LevelDBComparator> comparator)
</del><ins>+IDBBackingStoreLevelDB::IDBBackingStoreLevelDB(const String& identifier, std::unique_ptr<LevelDBDatabase> db, std::unique_ptr<LevelDBComparator> comparator)
</ins><span class="cx"> : m_identifier(identifier)
</span><del>- , m_db(db)
- , m_comparator(comparator)
</del><ins>+ , m_db(std::move(db))
+ , m_comparator(std::move(comparator))
</ins><span class="cx"> , m_weakFactory(this)
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="lines">@@ -347,8 +347,8 @@
</span><span class="cx"> IDBBackingStoreLevelDB::~IDBBackingStoreLevelDB()
</span><span class="cx"> {
</span><span class="cx"> // m_db's destructor uses m_comparator. The order of destruction is important.
</span><del>- m_db.clear();
- m_comparator.clear();
</del><ins>+ m_db = nullptr;
+ m_comparator = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> enum IDBLevelDBBackingStoreOpenResult {
</span><span class="lines">@@ -378,8 +378,8 @@
</span><span class="cx"> ASSERT(!pathBaseArg.isEmpty());
</span><span class="cx"> String pathBase = pathBaseArg;
</span><span class="cx">
</span><del>- OwnPtr<LevelDBComparator> comparator = adoptPtr(new Comparator());
- OwnPtr<LevelDBDatabase> db;
</del><ins>+ std::unique_ptr<LevelDBComparator> comparator = std::make_unique<Comparator>();
+ std::unique_ptr<LevelDBDatabase> db;
</ins><span class="cx">
</span><span class="cx"> if (!pathBase.containsOnlyASCII())
</span><span class="cx"> HistogramSupport::histogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus", IDBLevelDBBackingStoreOpenAttemptNonASCII, IDBLevelDBBackingStoreOpenMax);
</span><span class="lines">@@ -398,11 +398,11 @@
</span><span class="cx"> if (!ok) {
</span><span class="cx"> LOG_ERROR("IndexedDB had IO error checking schema, treating it as failure to open");
</span><span class="cx"> HistogramSupport::histogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus", IDBLevelDBBackingStoreOpenFailedIOErrCheckingSchema, IDBLevelDBBackingStoreOpenMax);
</span><del>- db.clear();
</del><ins>+ db = nullptr;
</ins><span class="cx"> } else if (!known) {
</span><span class="cx"> LOG_ERROR("IndexedDB backing store had unknown schema, treating it as failure to open");
</span><span class="cx"> HistogramSupport::histogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus", IDBLevelDBBackingStoreOpenFailedUnknownSchema, IDBLevelDBBackingStoreOpenMax);
</span><del>- db.clear();
</del><ins>+ db = nullptr;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -433,7 +433,7 @@
</span><span class="cx"> return PassRefPtr<IDBBackingStoreLevelDB>();
</span><span class="cx"> }
</span><span class="cx">
</span><del>- return create(fileIdentifier, db.release(), comparator.release());
</del><ins>+ return create(fileIdentifier, std::move(db), std::move(comparator));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<IDBBackingStoreLevelDB> IDBBackingStoreLevelDB::openInMemory(const String& identifier)
</span><span class="lines">@@ -446,8 +446,8 @@
</span><span class="cx"> {
</span><span class="cx"> LOG(StorageAPI, "IDBBackingStoreLevelDB::openInMemory");
</span><span class="cx">
</span><del>- OwnPtr<LevelDBComparator> comparator = adoptPtr(new Comparator());
- OwnPtr<LevelDBDatabase> db = LevelDBDatabase::openInMemory(comparator.get());
</del><ins>+ std::unique_ptr<LevelDBComparator> comparator = std::make_unique<Comparator>();
+ std::unique_ptr<LevelDBDatabase> db = LevelDBDatabase::openInMemory(comparator.get());
</ins><span class="cx"> if (!db) {
</span><span class="cx"> LOG_ERROR("LevelDBDatabase::openInMemory failed.");
</span><span class="cx"> HistogramSupport::histogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus", IDBLevelDBBackingStoreOpenMemoryFailed, IDBLevelDBBackingStoreOpenMax);
</span><span class="lines">@@ -455,13 +455,13 @@
</span><span class="cx"> }
</span><span class="cx"> HistogramSupport::histogramEnumeration("WebCore.IndexedDB.BackingStore.OpenStatus", IDBLevelDBBackingStoreOpenMemorySuccess, IDBLevelDBBackingStoreOpenMax);
</span><span class="cx">
</span><del>- return create(identifier, db.release(), comparator.release());
</del><ins>+ return create(identifier, std::move(db), std::move(comparator));
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassRefPtr<IDBBackingStoreLevelDB> IDBBackingStoreLevelDB::create(const String& identifier, PassOwnPtr<LevelDBDatabase> db, PassOwnPtr<LevelDBComparator> comparator)
</del><ins>+PassRefPtr<IDBBackingStoreLevelDB> IDBBackingStoreLevelDB::create(const String& identifier, std::unique_ptr<LevelDBDatabase> db, std::unique_ptr<LevelDBComparator> comparator)
</ins><span class="cx"> {
</span><span class="cx"> // FIXME: Handle comparator name changes.
</span><del>- RefPtr<IDBBackingStoreLevelDB> backingStore(adoptRef(new IDBBackingStoreLevelDB(identifier, db, comparator)));
</del><ins>+ RefPtr<IDBBackingStoreLevelDB> backingStore(adoptRef(new IDBBackingStoreLevelDB(identifier, std::move(db), std::move(comparator))));
</ins><span class="cx">
</span><span class="cx"> if (!setUpMetadata(backingStore->m_db.get(), identifier))
</span><span class="cx"> return PassRefPtr<IDBBackingStoreLevelDB>();
</span><span class="lines">@@ -477,7 +477,7 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(foundNames.isEmpty());
</span><span class="cx">
</span><del>- OwnPtr<LevelDBIterator> it = m_db->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = m_db->createIterator();
</ins><span class="cx"> for (it->seek(startKey); it->isValid() && compareKeys(it->key(), stopKey) < 0; it->next()) {
</span><span class="cx"> const char* p = it->key().begin();
</span><span class="cx"> const char* limit = it->key().end();
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx">
</span><span class="cx"> static void deleteRange(LevelDBTransaction* transaction, const Vector<char>& begin, const Vector<char>& end)
</span><span class="cx"> {
</span><del>- OwnPtr<LevelDBIterator> it = transaction->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = transaction->createIterator();
</ins><span class="cx"> for (it->seek(begin); it->isValid() && compareKeys(it->key(), end) < 0; it->next())
</span><span class="cx"> transaction->remove(it->key());
</span><span class="cx"> }
</span><span class="lines">@@ -663,7 +663,7 @@
</span><span class="cx"> void IDBBackingStoreLevelDB::deleteDatabase(const String& name, std::function<void (bool success)> boolCallbackFunction)
</span><span class="cx"> {
</span><span class="cx"> LOG(StorageAPI, "IDBBackingStoreLevelDB::deleteDatabase");
</span><del>- OwnPtr<LevelDBWriteOnlyTransaction> transaction = LevelDBWriteOnlyTransaction::create(m_db.get());
</del><ins>+ std::unique_ptr<LevelDBWriteOnlyTransaction> transaction = std::make_unique<LevelDBWriteOnlyTransaction>(m_db.get());
</ins><span class="cx">
</span><span class="cx"> IDBDatabaseMetadata metadata;
</span><span class="cx"> bool success = false;
</span><span class="lines">@@ -680,7 +680,7 @@
</span><span class="cx">
</span><span class="cx"> const Vector<char> startKey = DatabaseMetaDataKey::encode(metadata.id, DatabaseMetaDataKey::OriginName);
</span><span class="cx"> const Vector<char> stopKey = DatabaseMetaDataKey::encode(metadata.id + 1, DatabaseMetaDataKey::OriginName);
</span><del>- OwnPtr<LevelDBIterator> it = m_db->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = m_db->createIterator();
</ins><span class="cx"> for (it->seek(startKey); it->isValid() && compareKeys(it->key(), stopKey) < 0; it->next())
</span><span class="cx"> transaction->remove(it->key());
</span><span class="cx">
</span><span class="lines">@@ -721,7 +721,7 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(objectStores->isEmpty());
</span><span class="cx">
</span><del>- OwnPtr<LevelDBIterator> it = m_db->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = m_db->createIterator();
</ins><span class="cx"> it->seek(startKey);
</span><span class="cx"> while (it->isValid() && compareKeys(it->key(), stopKey) < 0) {
</span><span class="cx"> const char* p = it->key().begin();
</span><span class="lines">@@ -1030,7 +1030,7 @@
</span><span class="cx"> const Vector<char> startKey = ObjectStoreDataKey::encode(databaseId, objectStoreId, minIDBKey());
</span><span class="cx"> const Vector<char> stopKey = ObjectStoreDataKey::encode(databaseId, objectStoreId, maxIDBKey());
</span><span class="cx">
</span><del>- OwnPtr<LevelDBIterator> it = levelDBTransaction->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = levelDBTransaction->createIterator();
</ins><span class="cx"> int64_t maxNumericKey = 0;
</span><span class="cx">
</span><span class="cx"> for (it->seek(startKey); it->isValid() && compareKeys(it->key(), stopKey) < 0; it->next()) {
</span><span class="lines">@@ -1127,7 +1127,7 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(indexes->isEmpty());
</span><span class="cx">
</span><del>- OwnPtr<LevelDBIterator> it = m_db->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = m_db->createIterator();
</ins><span class="cx"> it->seek(startKey);
</span><span class="cx"> while (it->isValid() && compareKeys(it->key(), stopKey) < 0) {
</span><span class="cx"> const char* p = it->key().begin();
</span><span class="lines">@@ -1254,7 +1254,7 @@
</span><span class="cx">
</span><span class="cx"> static bool findGreatestKeyLessThanOrEqual(LevelDBTransaction* transaction, const Vector<char>& target, Vector<char>& foundKey)
</span><span class="cx"> {
</span><del>- OwnPtr<LevelDBIterator> it = transaction->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = transaction->createIterator();
</ins><span class="cx"> it->seek(target);
</span><span class="cx">
</span><span class="cx"> if (!it->isValid()) {
</span><span class="lines">@@ -1307,7 +1307,7 @@
</span><span class="cx">
</span><span class="cx"> LevelDBTransaction* levelDBTransaction = IDBBackingStoreTransactionLevelDB::levelDBTransactionFrom(transaction);
</span><span class="cx"> const Vector<char> leveldbKey = IndexDataKey::encode(databaseId, objectStoreId, indexId, key);
</span><del>- OwnPtr<LevelDBIterator> it = levelDBTransaction->createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> it = levelDBTransaction->createIterator();
</ins><span class="cx"> it->seek(leveldbKey);
</span><span class="cx">
</span><span class="cx"> for (;;) {
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbleveldbIDBBackingStoreLevelDBh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -37,7 +37,7 @@
</span><span class="cx"> #include "LevelDBIterator.h"
</span><span class="cx"> #include "LevelDBTransaction.h"
</span><span class="cx"> #include <functional>
</span><del>-#include <wtf/OwnPtr.h>
</del><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> #include <wtf/WeakPtr.h>
</span><span class="cx">
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> class LevelDBFactory {
</span><span class="cx"> public:
</span><span class="cx"> virtual ~LevelDBFactory() { }
</span><del>- virtual PassOwnPtr<LevelDBDatabase> openLevelDB(const String& fileName, const LevelDBComparator*) = 0;
</del><ins>+ virtual std::unique_ptr<LevelDBDatabase> openLevelDB(const String& fileName, const LevelDBComparator*) = 0;
</ins><span class="cx"> virtual bool destroyLevelDB(const String& fileName) = 0;
</span><span class="cx"> };
</span><span class="cx">
</span><span class="lines">@@ -116,8 +116,8 @@
</span><span class="cx"> void removeBackingStoreTransaction(IDBBackingStoreTransactionLevelDB*);
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- IDBBackingStoreLevelDB(const String& identifier, PassOwnPtr<LevelDBDatabase>, PassOwnPtr<LevelDBComparator>);
- static PassRefPtr<IDBBackingStoreLevelDB> create(const String& identifier, PassOwnPtr<LevelDBDatabase>, PassOwnPtr<LevelDBComparator>);
</del><ins>+ IDBBackingStoreLevelDB(const String& identifier, std::unique_ptr<LevelDBDatabase>, std::unique_ptr<LevelDBComparator>);
+ static PassRefPtr<IDBBackingStoreLevelDB> create(const String& identifier, std::unique_ptr<LevelDBDatabase>, std::unique_ptr<LevelDBComparator>);
</ins><span class="cx">
</span><span class="cx"> // FIXME: LevelDB needs to support uint64_t as the version type.
</span><span class="cx"> bool createIDBDatabaseMetaData(IDBDatabaseMetadata&);
</span><span class="lines">@@ -129,8 +129,8 @@
</span><span class="cx">
</span><span class="cx"> String m_identifier;
</span><span class="cx">
</span><del>- OwnPtr<LevelDBDatabase> m_db;
- OwnPtr<LevelDBComparator> m_comparator;
</del><ins>+ std::unique_ptr<LevelDBDatabase> m_db;
+ std::unique_ptr<LevelDBComparator> m_comparator;
</ins><span class="cx"> WeakPtrFactory<IDBBackingStoreLevelDB> m_weakFactory;
</span><span class="cx">
</span><span class="cx"> HashMap<int64_t, RefPtr<IDBBackingStoreTransactionLevelDB>> m_backingStoreTransactions;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -41,7 +41,6 @@
</span><span class="cx"> #include <leveldb/env.h>
</span><span class="cx"> #include <leveldb/slice.h>
</span><span class="cx"> #include <string>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><span class="lines">@@ -111,9 +110,9 @@
</span><span class="cx"> LevelDBDatabase::~LevelDBDatabase()
</span><span class="cx"> {
</span><span class="cx"> // m_db's destructor uses m_comparatorAdapter; order of deletion is important.
</span><del>- m_db.clear();
- m_comparatorAdapter.clear();
- m_env.clear();
</del><ins>+ m_db = nullptr;
+ m_comparatorAdapter = nullptr;
+ m_env = nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static leveldb::Status openDB(leveldb::Comparator* comparator, leveldb::Env* env, const String& path, leveldb::DB** db)
</span><span class="lines">@@ -157,9 +156,9 @@
</span><span class="cx"> HistogramSupport::histogramEnumeration(histogramName, levelDBError, LevelDBMaxError);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBDatabase> LevelDBDatabase::open(const String& fileName, const LevelDBComparator* comparator)
</del><ins>+std::unique_ptr<LevelDBDatabase> LevelDBDatabase::open(const String& fileName, const LevelDBComparator* comparator)
</ins><span class="cx"> {
</span><del>- OwnPtr<ComparatorAdapter> comparatorAdapter = adoptPtr(new ComparatorAdapter(comparator));
</del><ins>+ auto comparatorAdapter = std::make_unique<ComparatorAdapter>(comparator);
</ins><span class="cx">
</span><span class="cx"> leveldb::DB* db;
</span><span class="cx"> const leveldb::Status s = openDB(comparatorAdapter.get(), leveldb::IDBEnv(), fileName, &db);
</span><span class="lines">@@ -171,18 +170,18 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<LevelDBDatabase> result = adoptPtr(new LevelDBDatabase);
- result->m_db = adoptPtr(db);
- result->m_comparatorAdapter = comparatorAdapter.release();
</del><ins>+ auto result = std::make_unique<LevelDBDatabase>();
+ result->m_db = std::unique_ptr<leveldb::DB>(db);
+ result->m_comparatorAdapter = std::move(comparatorAdapter);
</ins><span class="cx"> result->m_comparator = comparator;
</span><span class="cx">
</span><del>- return result.release();
</del><ins>+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBDatabase> LevelDBDatabase::openInMemory(const LevelDBComparator* comparator)
</del><ins>+std::unique_ptr<LevelDBDatabase> LevelDBDatabase::openInMemory(const LevelDBComparator* comparator)
</ins><span class="cx"> {
</span><del>- OwnPtr<ComparatorAdapter> comparatorAdapter = adoptPtr(new ComparatorAdapter(comparator));
- OwnPtr<leveldb::Env> inMemoryEnv = adoptPtr(leveldb::NewMemEnv(leveldb::IDBEnv()));
</del><ins>+ auto comparatorAdapter = std::make_unique<ComparatorAdapter>(comparator);
+ std::unique_ptr<leveldb::Env> inMemoryEnv(leveldb::NewMemEnv(leveldb::IDBEnv()));
</ins><span class="cx">
</span><span class="cx"> leveldb::DB* db;
</span><span class="cx"> const leveldb::Status s = openDB(comparatorAdapter.get(), inMemoryEnv.get(), String(), &db);
</span><span class="lines">@@ -192,13 +191,13 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<LevelDBDatabase> result = adoptPtr(new LevelDBDatabase);
- result->m_env = inMemoryEnv.release();
- result->m_db = adoptPtr(db);
- result->m_comparatorAdapter = comparatorAdapter.release();
</del><ins>+ auto result = std::make_unique<LevelDBDatabase>();
+ result->m_env = std::move(inMemoryEnv);
+ result->m_db = std::unique_ptr<leveldb::DB>(db);
+ result->m_comparatorAdapter = std::move(comparatorAdapter);
</ins><span class="cx"> result->m_comparator = comparator;
</span><span class="cx">
</span><del>- return result.release();
</del><ins>+ return result;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool LevelDBDatabase::put(const LevelDBSlice& key, const Vector<char>& value)
</span><span class="lines">@@ -264,6 +263,7 @@
</span><span class="cx"> namespace {
</span><span class="cx"> class IteratorImpl : public LevelDBIterator {
</span><span class="cx"> public:
</span><ins>+ explicit IteratorImpl(std::unique_ptr<leveldb::Iterator>);
</ins><span class="cx"> ~IteratorImpl() { };
</span><span class="cx">
</span><span class="cx"> virtual bool isValid() const;
</span><span class="lines">@@ -275,16 +275,14 @@
</span><span class="cx"> virtual LevelDBSlice value() const;
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- friend class WebCore::LevelDBDatabase;
- IteratorImpl(PassOwnPtr<leveldb::Iterator>);
</del><span class="cx"> void checkStatus();
</span><span class="cx">
</span><del>- OwnPtr<leveldb::Iterator> m_iterator;
</del><ins>+ std::unique_ptr<leveldb::Iterator> m_iterator;
</ins><span class="cx"> };
</span><span class="cx"> }
</span><span class="cx">
</span><del>-IteratorImpl::IteratorImpl(PassOwnPtr<leveldb::Iterator> it)
- : m_iterator(it)
</del><ins>+IteratorImpl::IteratorImpl(std::unique_ptr<leveldb::Iterator> it)
+ : m_iterator(std::move(it))
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -338,15 +336,15 @@
</span><span class="cx"> return makeLevelDBSlice(m_iterator->value());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBIterator> LevelDBDatabase::createIterator(const LevelDBSnapshot* snapshot)
</del><ins>+std::unique_ptr<LevelDBIterator> LevelDBDatabase::createIterator(const LevelDBSnapshot* snapshot)
</ins><span class="cx"> {
</span><span class="cx"> leveldb::ReadOptions readOptions;
</span><span class="cx"> readOptions.verify_checksums = true; // FIXME: Disable this if the performance impact is too great.
</span><span class="cx"> readOptions.snapshot = snapshot ? snapshot->m_snapshot : 0;
</span><del>- OwnPtr<leveldb::Iterator> i = adoptPtr(m_db->NewIterator(readOptions));
</del><ins>+ std::unique_ptr<leveldb::Iterator> i(m_db->NewIterator(readOptions));
</ins><span class="cx"> if (!i) // FIXME: Double check if we actually need to check this.
</span><span class="cx"> return nullptr;
</span><del>- return adoptPtr(new IteratorImpl(i.release()));
</del><ins>+ return std::make_unique<IteratorImpl>(std::move(i));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const LevelDBComparator* LevelDBDatabase::comparator() const
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBDatabase.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -28,8 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if USE(LEVELDB)
</span><span class="cx">
</span><del>-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
</del><ins>+#include <memory>
</ins><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><span class="lines">@@ -62,8 +61,9 @@
</span><span class="cx">
</span><span class="cx"> class LevelDBDatabase {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<LevelDBDatabase> open(const String& fileName, const LevelDBComparator*);
- static PassOwnPtr<LevelDBDatabase> openInMemory(const LevelDBComparator*);
</del><ins>+ static std::unique_ptr<LevelDBDatabase> open(const String& fileName, const LevelDBComparator*);
+ static std::unique_ptr<LevelDBDatabase> openInMemory(const LevelDBComparator*);
+ LevelDBDatabase();
</ins><span class="cx"> static bool destroy(const String& fileName);
</span><span class="cx"> virtual ~LevelDBDatabase();
</span><span class="cx">
</span><span class="lines">@@ -71,18 +71,15 @@
</span><span class="cx"> bool remove(const LevelDBSlice& key);
</span><span class="cx"> virtual bool safeGet(const LevelDBSlice& key, Vector<char>& value, bool& found, const LevelDBSnapshot* = 0);
</span><span class="cx"> bool write(LevelDBWriteBatch&);
</span><del>- PassOwnPtr<LevelDBIterator> createIterator(const LevelDBSnapshot* = 0);
</del><ins>+ std::unique_ptr<LevelDBIterator> createIterator(const LevelDBSnapshot* = 0);
</ins><span class="cx"> const LevelDBComparator* comparator() const;
</span><span class="cx">
</span><del>-protected:
- LevelDBDatabase();
-
</del><span class="cx"> private:
</span><span class="cx"> friend class LevelDBSnapshot;
</span><span class="cx">
</span><del>- OwnPtr<leveldb::Env> m_env;
- OwnPtr<leveldb::Comparator> m_comparatorAdapter;
- OwnPtr<leveldb::DB> m_db;
</del><ins>+ std::unique_ptr<leveldb::Env> m_env;
+ std::unique_ptr<leveldb::Comparator> m_comparatorAdapter;
+ std::unique_ptr<leveldb::DB> m_db;
</ins><span class="cx"> const LevelDBComparator* m_comparator;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBTransactioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -139,7 +139,7 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- OwnPtr<LevelDBWriteBatch> writeBatch = LevelDBWriteBatch::create();
</del><ins>+ std::unique_ptr<LevelDBWriteBatch> writeBatch = std::make_unique<LevelDBWriteBatch>();
</ins><span class="cx">
</span><span class="cx"> TreeType::Iterator iterator;
</span><span class="cx"> iterator.start_iter_least(m_tree);
</span><span class="lines">@@ -168,16 +168,11 @@
</span><span class="cx"> clearTree();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBIterator> LevelDBTransaction::createIterator()
</del><ins>+std::unique_ptr<LevelDBIterator> LevelDBTransaction::createIterator()
</ins><span class="cx"> {
</span><del>- return TransactionIterator::create(this);
</del><ins>+ return std::make_unique<TransactionIterator>(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBTransaction::TreeIterator> LevelDBTransaction::TreeIterator::create(LevelDBTransaction* transaction)
-{
- return adoptPtr(new TreeIterator(transaction));
-}
-
</del><span class="cx"> bool LevelDBTransaction::TreeIterator::isValid() const
</span><span class="cx"> {
</span><span class="cx"> return *m_iterator;
</span><span class="lines">@@ -257,15 +252,10 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBTransaction::TransactionIterator> LevelDBTransaction::TransactionIterator::create(PassRefPtr<LevelDBTransaction> transaction)
-{
- return adoptPtr(new TransactionIterator(transaction));
-}
-
</del><span class="cx"> LevelDBTransaction::TransactionIterator::TransactionIterator(PassRefPtr<LevelDBTransaction> transaction)
</span><span class="cx"> : m_transaction(transaction)
</span><span class="cx"> , m_comparator(m_transaction->m_comparator)
</span><del>- , m_treeIterator(TreeIterator::create(m_transaction.get()))
</del><ins>+ , m_treeIterator(std::make_unique<TreeIterator>((m_transaction.get())))
</ins><span class="cx"> , m_dbIterator(m_transaction->m_db->createIterator(&m_transaction->m_snapshot))
</span><span class="cx"> , m_current(0)
</span><span class="cx"> , m_direction(kForward)
</span><span class="lines">@@ -387,7 +377,7 @@
</span><span class="cx">
</span><span class="cx"> m_treeChanged = false;
</span><span class="cx">
</span><del>- if (m_treeIterator->isValid() && m_treeIterator == m_current) {
</del><ins>+ if (m_treeIterator->isValid() && m_treeIterator.get() == m_current) {
</ins><span class="cx"> m_treeIterator->reset();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -499,14 +489,9 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBWriteOnlyTransaction> LevelDBWriteOnlyTransaction::create(LevelDBDatabase* db)
-{
- return adoptPtr(new LevelDBWriteOnlyTransaction(db));
-}
-
</del><span class="cx"> LevelDBWriteOnlyTransaction::LevelDBWriteOnlyTransaction(LevelDBDatabase* db)
</span><span class="cx"> : m_db(db)
</span><del>- , m_writeBatch(LevelDBWriteBatch::create())
</del><ins>+ , m_writeBatch(std::make_unique<LevelDBWriteBatch>())
</ins><span class="cx"> , m_finished(false)
</span><span class="cx"> {
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBTransactionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBTransaction.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -35,7 +35,6 @@
</span><span class="cx"> #include "LevelDBSlice.h"
</span><span class="cx"> #include <wtf/AVLTree.h>
</span><span class="cx"> #include <wtf/HashSet.h>
</span><del>-#include <wtf/PassOwnPtr.h>
</del><span class="cx"> #include <wtf/PassRefPtr.h>
</span><span class="cx"> #include <wtf/RefCounted.h>
</span><span class="cx"> #include <wtf/RefPtr.h>
</span><span class="lines">@@ -59,7 +58,7 @@
</span><span class="cx"> bool commit();
</span><span class="cx"> void rollback();
</span><span class="cx">
</span><del>- PassOwnPtr<LevelDBIterator> createIterator();
</del><ins>+ std::unique_ptr<LevelDBIterator> createIterator();
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> LevelDBTransaction(LevelDBDatabase*);
</span><span class="lines">@@ -100,7 +99,7 @@
</span><span class="cx">
</span><span class="cx"> class TreeIterator : public LevelDBIterator {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<TreeIterator> create(LevelDBTransaction*);
</del><ins>+ explicit TreeIterator(LevelDBTransaction*);
</ins><span class="cx"> ~TreeIterator();
</span><span class="cx">
</span><span class="cx"> virtual bool isValid() const;
</span><span class="lines">@@ -114,7 +113,6 @@
</span><span class="cx"> void reset();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- TreeIterator(LevelDBTransaction*);
</del><span class="cx"> mutable TreeType::Iterator m_iterator; // Dereferencing this is non-const.
</span><span class="cx"> TreeType* m_tree;
</span><span class="cx"> LevelDBTransaction* m_transaction;
</span><span class="lines">@@ -123,8 +121,8 @@
</span><span class="cx">
</span><span class="cx"> class TransactionIterator : public LevelDBIterator {
</span><span class="cx"> public:
</span><ins>+ explicit TransactionIterator(PassRefPtr<LevelDBTransaction>);
</ins><span class="cx"> ~TransactionIterator();
</span><del>- static PassOwnPtr<TransactionIterator> create(PassRefPtr<LevelDBTransaction>);
</del><span class="cx">
</span><span class="cx"> virtual bool isValid() const;
</span><span class="cx"> virtual void seekToLast();
</span><span class="lines">@@ -136,7 +134,6 @@
</span><span class="cx"> void treeChanged();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- TransactionIterator(PassRefPtr<LevelDBTransaction>);
</del><span class="cx"> void handleConflictsAndDeletes();
</span><span class="cx"> void setCurrentIteratorToSmallestKey();
</span><span class="cx"> void setCurrentIteratorToLargestKey();
</span><span class="lines">@@ -146,8 +143,8 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<LevelDBTransaction> m_transaction;
</span><span class="cx"> const LevelDBComparator* m_comparator;
</span><del>- mutable OwnPtr<TreeIterator> m_treeIterator;
- OwnPtr<LevelDBIterator> m_dbIterator;
</del><ins>+ mutable std::unique_ptr<TreeIterator> m_treeIterator;
+ std::unique_ptr<LevelDBIterator> m_dbIterator;
</ins><span class="cx"> LevelDBIterator* m_current;
</span><span class="cx">
</span><span class="cx"> enum Direction {
</span><span class="lines">@@ -174,17 +171,14 @@
</span><span class="cx">
</span><span class="cx"> class LevelDBWriteOnlyTransaction {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<LevelDBWriteOnlyTransaction> create(LevelDBDatabase*);
-
</del><ins>+ explicit LevelDBWriteOnlyTransaction(LevelDBDatabase*);
</ins><span class="cx"> ~LevelDBWriteOnlyTransaction();
</span><span class="cx"> void remove(const LevelDBSlice& key);
</span><span class="cx"> bool commit();
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- LevelDBWriteOnlyTransaction(LevelDBDatabase*);
-
</del><span class="cx"> LevelDBDatabase* m_db;
</span><del>- OwnPtr<LevelDBWriteBatch> m_writeBatch;
</del><ins>+ std::unique_ptr<LevelDBWriteBatch> m_writeBatch;
</ins><span class="cx"> bool m_finished;
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBWriteBatchcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.cpp (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.cpp        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.cpp        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -34,13 +34,8 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><del>-PassOwnPtr<LevelDBWriteBatch> LevelDBWriteBatch::create()
-{
- return adoptPtr(new LevelDBWriteBatch);
-}
-
</del><span class="cx"> LevelDBWriteBatch::LevelDBWriteBatch()
</span><del>- : m_writeBatch(adoptPtr(new leveldb::WriteBatch))
</del><ins>+ : m_writeBatch(std::make_unique<leveldb::WriteBatch>())
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformleveldbLevelDBWriteBatchh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.h (164313 => 164314)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.h        2014-02-18 21:59:43 UTC (rev 164313)
+++ trunk/Source/WebCore/platform/leveldb/LevelDBWriteBatch.h        2014-02-18 22:08:45 UTC (rev 164314)
</span><span class="lines">@@ -28,8 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if USE(LEVELDB)
</span><span class="cx">
</span><del>-#include <wtf/OwnPtr.h>
-#include <wtf/PassOwnPtr.h>
</del><ins>+#include <memory>
</ins><span class="cx">
</span><span class="cx"> namespace leveldb {
</span><span class="cx"> class WriteBatch;
</span><span class="lines">@@ -43,7 +42,7 @@
</span><span class="cx"> // This class holds a collection of updates to apply atomically to a database.
</span><span class="cx"> class LevelDBWriteBatch {
</span><span class="cx"> public:
</span><del>- static PassOwnPtr<LevelDBWriteBatch> create();
</del><ins>+ LevelDBWriteBatch();
</ins><span class="cx"> ~LevelDBWriteBatch();
</span><span class="cx">
</span><span class="cx"> void put(const LevelDBSlice& key, const LevelDBSlice& value);
</span><span class="lines">@@ -52,9 +51,8 @@
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> friend class LevelDBDatabase;
</span><del>- LevelDBWriteBatch();
</del><span class="cx">
</span><del>- OwnPtr<leveldb::WriteBatch> m_writeBatch;
</del><ins>+ std::unique_ptr<leveldb::WriteBatch> m_writeBatch;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>