<!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>[191620] trunk/Source</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/191620">191620</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-10-26 22:22:55 -0700 (Mon, 26 Oct 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Make IDBKeyData from a struct to a class.
https://bugs.webkit.org/show_bug.cgi?id=150576
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (No change in behavior).
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::maybeCreateIDBKey):
(WebCore::IDBKeyData::isolatedCopy):
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
(WebCore::IDBKeyData::compare):
(WebCore::IDBKeyData::loggingString):
(WebCore::IDBKeyData::setArrayValue):
(WebCore::IDBKeyData::setStringValue):
(WebCore::IDBKeyData::setDateValue):
(WebCore::IDBKeyData::setNumberValue):
* Modules/indexeddb/IDBKeyData.h:
(WebCore::IDBKeyData::IDBKeyData):
(WebCore::IDBKeyData::minimum):
(WebCore::IDBKeyData::maximum):
(WebCore::IDBKeyData::isNull):
(WebCore::IDBKeyData::type):
(WebCore::IDBKeyData::encode):
(WebCore::IDBKeyData::decode):
* Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:
(WebCore::GetOperation::perform):
* bindings/js/IDBBindingUtilities.h:
* platform/CrossThreadCopier.h:
Source/WebKit2:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
* DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
* DatabaseProcess/IndexedDB/IDBSerialization.h:
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::putRecordInBackingStore):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
* DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
(WebKit::buildIndexStatement):
(WebKit::buildObjectStoreStatement):
(WebKit::SQLiteIDBCursor::establishStatement):
(WebKit::SQLiteIDBCursor::createSQLiteStatement):
(WebKit::SQLiteIDBCursor::resetAndRebindStatement):
(WebKit::SQLiteIDBCursor::iterate):
* DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::didPutRecord):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBKeyDatacpp">trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.cpp</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddbIDBKeyDatah">trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h</a></li>
<li><a href="#trunkSourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationscpp">trunk/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsjsIDBBindingUtilitiesh">trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h</a></li>
<li><a href="#trunkSourceWebCoreplatformCrossThreadCopierh">trunk/Source/WebCore/platform/CrossThreadCopier.h</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionh">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionmessagesin">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBIDBSerializationh">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabasecpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseh">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp</a></li>
<li><a href="#trunkSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp">trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionmessagesin">trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/ChangeLog        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -1,3 +1,37 @@
</span><ins>+2015-10-26 Brady Eidson <beidson@apple.com>
+
+ Make IDBKeyData from a struct to a class.
+ https://bugs.webkit.org/show_bug.cgi?id=150576
+
+ Reviewed by Alex Christensen.
+
+ No new tests (No change in behavior).
+
+ * Modules/indexeddb/IDBKeyData.cpp:
+ (WebCore::IDBKeyData::IDBKeyData):
+ (WebCore::IDBKeyData::maybeCreateIDBKey):
+ (WebCore::IDBKeyData::isolatedCopy):
+ (WebCore::IDBKeyData::encode):
+ (WebCore::IDBKeyData::decode):
+ (WebCore::IDBKeyData::compare):
+ (WebCore::IDBKeyData::loggingString):
+ (WebCore::IDBKeyData::setArrayValue):
+ (WebCore::IDBKeyData::setStringValue):
+ (WebCore::IDBKeyData::setDateValue):
+ (WebCore::IDBKeyData::setNumberValue):
+ * Modules/indexeddb/IDBKeyData.h:
+ (WebCore::IDBKeyData::IDBKeyData):
+ (WebCore::IDBKeyData::minimum):
+ (WebCore::IDBKeyData::maximum):
+ (WebCore::IDBKeyData::isNull):
+ (WebCore::IDBKeyData::type):
+ (WebCore::IDBKeyData::encode):
+ (WebCore::IDBKeyData::decode):
+ * Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:
+ (WebCore::GetOperation::perform):
+ * bindings/js/IDBBindingUtilities.h:
+ * platform/CrossThreadCopier.h:
+
</ins><span class="cx"> 2015-10-26 Philip Chimento <philip.chimento@gmail.com>
</span><span class="cx">
</span><span class="cx"> [GTK] [Stable] Build GL texture mapper only if USE_TEXTURE_MAPPER_GL
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBKeyDatacpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -34,33 +34,30 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> IDBKeyData::IDBKeyData(const IDBKey* key)
</span><del>- : type(KeyType::Invalid)
- , numberValue(0)
- , isNull(false)
</del><ins>+ : m_type(KeyType::Invalid)
</ins><span class="cx"> {
</span><span class="cx"> if (!key) {
</span><del>- isNull = true;
</del><ins>+ m_isNull = true;
</ins><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- type = key->type();
- numberValue = 0;
</del><ins>+ m_type = key->type();
</ins><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::Array:
</span><span class="cx"> for (auto& key2 : key->array())
</span><del>- arrayValue.append(IDBKeyData(key2.get()));
</del><ins>+ m_arrayValue.append(IDBKeyData(key2.get()));
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::String:
</span><del>- stringValue = key->string();
</del><ins>+ m_stringValue = key->string();
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::Date:
</span><del>- numberValue = key->date();
</del><ins>+ m_numberValue = key->date();
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::Number:
</span><del>- numberValue = key->number();
</del><ins>+ m_numberValue = key->number();
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="lines">@@ -70,27 +67,27 @@
</span><span class="cx">
</span><span class="cx"> PassRefPtr<IDBKey> IDBKeyData::maybeCreateIDBKey() const
</span><span class="cx"> {
</span><del>- if (isNull)
</del><ins>+ if (m_isNull)
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> return IDBKey::createInvalid();
</span><span class="cx"> case KeyType::Array:
</span><span class="cx"> {
</span><span class="cx"> Vector<RefPtr<IDBKey>> array;
</span><del>- for (auto& keyData : arrayValue) {
</del><ins>+ for (auto& keyData : m_arrayValue) {
</ins><span class="cx"> array.append(keyData.maybeCreateIDBKey());
</span><span class="cx"> ASSERT(array.last());
</span><span class="cx"> }
</span><span class="cx"> return IDBKey::createArray(array);
</span><span class="cx"> }
</span><span class="cx"> case KeyType::String:
</span><del>- return IDBKey::createString(stringValue);
</del><ins>+ return IDBKey::createString(m_stringValue);
</ins><span class="cx"> case KeyType::Date:
</span><del>- return IDBKey::createDate(numberValue);
</del><ins>+ return IDBKey::createDate(m_numberValue);
</ins><span class="cx"> case KeyType::Number:
</span><del>- return IDBKey::createNumber(numberValue);
</del><ins>+ return IDBKey::createNumber(m_numberValue);
</ins><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="lines">@@ -104,22 +101,22 @@
</span><span class="cx"> IDBKeyData IDBKeyData::isolatedCopy() const
</span><span class="cx"> {
</span><span class="cx"> IDBKeyData result;
</span><del>- result.type = type;
- result.isNull = isNull;
</del><ins>+ result.m_type = m_type;
+ result.m_isNull = m_isNull;
</ins><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> return result;
</span><span class="cx"> case KeyType::Array:
</span><del>- for (auto& key : arrayValue)
- result.arrayValue.append(key.isolatedCopy());
</del><ins>+ for (auto& key : m_arrayValue)
+ result.m_arrayValue.append(key.isolatedCopy());
</ins><span class="cx"> return result;
</span><span class="cx"> case KeyType::String:
</span><del>- result.stringValue = stringValue.isolatedCopy();
</del><ins>+ result.m_stringValue = m_stringValue.isolatedCopy();
</ins><span class="cx"> return result;
</span><span class="cx"> case KeyType::Date:
</span><span class="cx"> case KeyType::Number:
</span><del>- result.numberValue = numberValue;
</del><ins>+ result.m_numberValue = m_numberValue;
</ins><span class="cx"> return result;
</span><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="lines">@@ -132,26 +129,26 @@
</span><span class="cx">
</span><span class="cx"> void IDBKeyData::encode(KeyedEncoder& encoder) const
</span><span class="cx"> {
</span><del>- encoder.encodeBool("null", isNull);
- if (isNull)
</del><ins>+ encoder.encodeBool("null", m_isNull);
+ if (m_isNull)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- encoder.encodeEnum("type", type);
</del><ins>+ encoder.encodeEnum("m_type", m_type);
</ins><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> return;
</span><span class="cx"> case KeyType::Array:
</span><del>- encoder.encodeObjects("array", arrayValue.begin(), arrayValue.end(), [](KeyedEncoder& encoder, const IDBKeyData& key) {
</del><ins>+ encoder.encodeObjects("array", m_arrayValue.begin(), m_arrayValue.end(), [](KeyedEncoder& encoder, const IDBKeyData& key) {
</ins><span class="cx"> key.encode(encoder);
</span><span class="cx"> });
</span><span class="cx"> return;
</span><span class="cx"> case KeyType::String:
</span><del>- encoder.encodeString("string", stringValue);
</del><ins>+ encoder.encodeString("string", m_stringValue);
</ins><span class="cx"> return;
</span><span class="cx"> case KeyType::Date:
</span><span class="cx"> case KeyType::Number:
</span><del>- encoder.encodeDouble("number", numberValue);
</del><ins>+ encoder.encodeDouble("number", m_numberValue);
</ins><span class="cx"> return;
</span><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="lines">@@ -163,10 +160,10 @@
</span><span class="cx">
</span><span class="cx"> bool IDBKeyData::decode(KeyedDecoder& decoder, IDBKeyData& result)
</span><span class="cx"> {
</span><del>- if (!decoder.decodeBool("null", result.isNull))
</del><ins>+ if (!decoder.decodeBool("null", result.m_isNull))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (result.isNull)
</del><ins>+ if (result.m_isNull)
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> auto enumFunction = [](int64_t value) {
</span><span class="lines">@@ -178,71 +175,71 @@
</span><span class="cx"> || value == KeyType::Number
</span><span class="cx"> || value == KeyType::Min;
</span><span class="cx"> };
</span><del>- if (!decoder.decodeEnum("type", result.type, enumFunction))
</del><ins>+ if (!decoder.decodeEnum("m_type", result.m_type, enumFunction))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (result.type == KeyType::Invalid)
</del><ins>+ if (result.m_type == KeyType::Invalid)
</ins><span class="cx"> return true;
</span><span class="cx">
</span><del>- if (result.type == KeyType::Max)
</del><ins>+ if (result.m_type == KeyType::Max)
</ins><span class="cx"> return true;
</span><span class="cx">
</span><del>- if (result.type == KeyType::Min)
</del><ins>+ if (result.m_type == KeyType::Min)
</ins><span class="cx"> return true;
</span><span class="cx">
</span><del>- if (result.type == KeyType::String)
- return decoder.decodeString("string", result.stringValue);
</del><ins>+ if (result.m_type == KeyType::String)
+ return decoder.decodeString("string", result.m_stringValue);
</ins><span class="cx">
</span><del>- if (result.type == KeyType::Number || result.type == KeyType::Date)
- return decoder.decodeDouble("number", result.numberValue);
</del><ins>+ if (result.m_type == KeyType::Number || result.m_type == KeyType::Date)
+ return decoder.decodeDouble("number", result.m_numberValue);
</ins><span class="cx">
</span><del>- ASSERT(result.type == KeyType::Array);
</del><ins>+ ASSERT(result.m_type == KeyType::Array);
</ins><span class="cx">
</span><span class="cx"> auto arrayFunction = [](KeyedDecoder& decoder, IDBKeyData& result) {
</span><span class="cx"> return decode(decoder, result);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- result.arrayValue.clear();
- return decoder.decodeObjects("array", result.arrayValue, arrayFunction);
</del><ins>+ result.m_arrayValue.clear();
+ return decoder.decodeObjects("array", result.m_arrayValue, arrayFunction);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int IDBKeyData::compare(const IDBKeyData& other) const
</span><span class="cx"> {
</span><del>- if (type == KeyType::Invalid) {
- if (other.type != KeyType::Invalid)
</del><ins>+ if (m_type == KeyType::Invalid) {
+ if (other.m_type != KeyType::Invalid)
</ins><span class="cx"> return -1;
</span><del>- if (other.type == KeyType::Invalid)
</del><ins>+ if (other.m_type == KeyType::Invalid)
</ins><span class="cx"> return 0;
</span><del>- } else if (other.type == KeyType::Invalid)
</del><ins>+ } else if (other.m_type == KeyType::Invalid)
</ins><span class="cx"> return 1;
</span><span class="cx">
</span><del>- // The IDBKey::Type enum is in reverse sort order.
- if (type != other.type)
- return type < other.type ? 1 : -1;
</del><ins>+ // The IDBKey::m_type enum is in reverse sort order.
+ if (m_type != other.m_type)
+ return m_type < other.m_type ? 1 : -1;
</ins><span class="cx">
</span><span class="cx"> // The types are the same, so handle actual value comparison.
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><del>- // InvalidType should have been fully handled above
</del><ins>+ // Invalid type should have been fully handled above
</ins><span class="cx"> ASSERT_NOT_REACHED();
</span><span class="cx"> return 0;
</span><span class="cx"> case KeyType::Array:
</span><del>- for (size_t i = 0; i < arrayValue.size() && i < other.arrayValue.size(); ++i) {
- if (int result = arrayValue[i].compare(other.arrayValue[i]))
</del><ins>+ for (size_t i = 0; i < m_arrayValue.size() && i < other.m_arrayValue.size(); ++i) {
+ if (int result = m_arrayValue[i].compare(other.m_arrayValue[i]))
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><del>- if (arrayValue.size() < other.arrayValue.size())
</del><ins>+ if (m_arrayValue.size() < other.m_arrayValue.size())
</ins><span class="cx"> return -1;
</span><del>- if (arrayValue.size() > other.arrayValue.size())
</del><ins>+ if (m_arrayValue.size() > other.m_arrayValue.size())
</ins><span class="cx"> return 1;
</span><span class="cx"> return 0;
</span><span class="cx"> case KeyType::String:
</span><del>- return codePointCompare(stringValue, other.stringValue);
</del><ins>+ return codePointCompare(m_stringValue, other.m_stringValue);
</ins><span class="cx"> case KeyType::Date:
</span><span class="cx"> case KeyType::Number:
</span><del>- if (numberValue == other.numberValue)
</del><ins>+ if (m_numberValue == other.m_numberValue)
</ins><span class="cx"> return 0;
</span><del>- return numberValue > other.numberValue ? 1 : -1;
</del><ins>+ return m_numberValue > other.m_numberValue ? 1 : -1;
</ins><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="cx"> return 0;
</span><span class="lines">@@ -255,30 +252,30 @@
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx"> String IDBKeyData::loggingString() const
</span><span class="cx"> {
</span><del>- if (isNull)
</del><ins>+ if (m_isNull)
</ins><span class="cx"> return "<null>";
</span><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> return "<invalid>";
</span><span class="cx"> case KeyType::Array:
</span><span class="cx"> {
</span><span class="cx"> StringBuilder result;
</span><span class="cx"> result.appendLiteral("<array> - { ");
</span><del>- for (size_t i = 0; i < arrayValue.size(); ++i) {
- result.append(arrayValue[i].loggingString());
- if (i < arrayValue.size() - 1)
</del><ins>+ for (size_t i = 0; i < m_arrayValue.size(); ++i) {
+ result.append(m_arrayValue[i].loggingString());
+ if (i < m_arrayValue.size() - 1)
</ins><span class="cx"> result.appendLiteral(", ");
</span><span class="cx"> }
</span><span class="cx"> result.appendLiteral(" }");
</span><span class="cx"> return result.toString();
</span><span class="cx"> }
</span><span class="cx"> case KeyType::String:
</span><del>- return "<string> - " + stringValue;
</del><ins>+ return "<string> - " + m_stringValue;
</ins><span class="cx"> case KeyType::Date:
</span><del>- return String::format("Date type - %f", numberValue);
</del><ins>+ return String::format("Date m_type - %f", m_numberValue);
</ins><span class="cx"> case KeyType::Number:
</span><del>- return String::format("<number> - %f", numberValue);
</del><ins>+ return String::format("<number> - %f", m_numberValue);
</ins><span class="cx"> case KeyType::Max:
</span><span class="cx"> return "<maximum>";
</span><span class="cx"> case KeyType::Min:
</span><span class="lines">@@ -293,33 +290,33 @@
</span><span class="cx"> void IDBKeyData::setArrayValue(const Vector<IDBKeyData>& value)
</span><span class="cx"> {
</span><span class="cx"> *this = IDBKeyData();
</span><del>- arrayValue = value;
- type = KeyType::Array;
- isNull = false;
</del><ins>+ m_arrayValue = value;
+ m_type = KeyType::Array;
+ m_isNull = false;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void IDBKeyData::setStringValue(const String& value)
</span><span class="cx"> {
</span><span class="cx"> *this = IDBKeyData();
</span><del>- stringValue = value;
- type = KeyType::String;
- isNull = false;
</del><ins>+ m_stringValue = value;
+ m_type = KeyType::String;
+ m_isNull = false;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void IDBKeyData::setDateValue(double value)
</span><span class="cx"> {
</span><span class="cx"> *this = IDBKeyData();
</span><del>- numberValue = value;
- type = KeyType::Date;
- isNull = false;
</del><ins>+ m_numberValue = value;
+ m_type = KeyType::Date;
+ m_isNull = false;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void IDBKeyData::setNumberValue(double value)
</span><span class="cx"> {
</span><span class="cx"> *this = IDBKeyData();
</span><del>- numberValue = value;
- type = KeyType::Number;
- isNull = false;
</del><ins>+ m_numberValue = value;
+ m_type = KeyType::Number;
+ m_isNull = false;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddbIDBKeyDatah"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBKeyData.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -35,11 +35,11 @@
</span><span class="cx"> class KeyedDecoder;
</span><span class="cx"> class KeyedEncoder;
</span><span class="cx">
</span><del>-struct IDBKeyData {
</del><ins>+class IDBKeyData {
+public:
</ins><span class="cx"> IDBKeyData()
</span><del>- : type(KeyType::Invalid)
- , numberValue(0)
- , isNull(true)
</del><ins>+ : m_type(KeyType::Invalid)
+ , m_isNull(true)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -48,16 +48,16 @@
</span><span class="cx"> static IDBKeyData minimum()
</span><span class="cx"> {
</span><span class="cx"> IDBKeyData result;
</span><del>- result.type = KeyType::Min;
- result.isNull = false;
</del><ins>+ result.m_type = KeyType::Min;
+ result.m_isNull = false;
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static IDBKeyData maximum()
</span><span class="cx"> {
</span><span class="cx"> IDBKeyData result;
</span><del>- result.type = KeyType::Max;
- result.isNull = false;
</del><ins>+ result.m_type = KeyType::Max;
+ result.m_isNull = false;
</ins><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -86,34 +86,38 @@
</span><span class="cx"> WEBCORE_EXPORT String loggingString() const;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- KeyType type;
- Vector<IDBKeyData> arrayValue;
- String stringValue;
- double numberValue;
- bool isNull;
</del><ins>+ bool isNull() const { return m_isNull; }
+ KeyType type() const { return m_type; }
+
+private:
+ KeyType m_type;
+ Vector<IDBKeyData> m_arrayValue;
+ String m_stringValue;
+ double m_numberValue { 0 };
+ bool m_isNull { false };
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> template<class Encoder>
</span><span class="cx"> void IDBKeyData::encode(Encoder& encoder) const
</span><span class="cx"> {
</span><del>- encoder << isNull;
- if (isNull)
</del><ins>+ encoder << m_isNull;
+ if (m_isNull)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- encoder.encodeEnum(type);
</del><ins>+ encoder.encodeEnum(m_type);
</ins><span class="cx">
</span><del>- switch (type) {
</del><ins>+ switch (m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::Array:
</span><del>- encoder << arrayValue;
</del><ins>+ encoder << m_arrayValue;
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::String:
</span><del>- encoder << stringValue;
</del><ins>+ encoder << m_stringValue;
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::Date:
</span><span class="cx"> case KeyType::Number:
</span><del>- encoder << numberValue;
</del><ins>+ encoder << m_numberValue;
</ins><span class="cx"> break;
</span><span class="cx"> case KeyType::Max:
</span><span class="cx"> case KeyType::Min:
</span><span class="lines">@@ -127,29 +131,29 @@
</span><span class="cx"> template<class Decoder>
</span><span class="cx"> bool IDBKeyData::decode(Decoder& decoder, IDBKeyData& keyData)
</span><span class="cx"> {
</span><del>- if (!decoder.decode(keyData.isNull))
</del><ins>+ if (!decoder.decode(keyData.m_isNull))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (keyData.isNull)
</del><ins>+ if (keyData.m_isNull)
</ins><span class="cx"> return true;
</span><span class="cx">
</span><del>- if (!decoder.decodeEnum(keyData.type))
</del><ins>+ if (!decoder.decodeEnum(keyData.m_type))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- switch (keyData.type) {
</del><ins>+ switch (keyData.m_type) {
</ins><span class="cx"> case KeyType::Invalid:
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::Array:
</span><del>- if (!decoder.decode(keyData.arrayValue))
</del><ins>+ if (!decoder.decode(keyData.m_arrayValue))
</ins><span class="cx"> return false;
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::String:
</span><del>- if (!decoder.decode(keyData.stringValue))
</del><ins>+ if (!decoder.decode(keyData.m_stringValue))
</ins><span class="cx"> return false;
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::Date:
</span><span class="cx"> case KeyType::Number:
</span><del>- if (!decoder.decode(keyData.numberValue))
</del><ins>+ if (!decoder.decode(keyData.m_numberValue))
</ins><span class="cx"> return false;
</span><span class="cx"> break;
</span><span class="cx"> case KeyType::Max:
</span></span></pre></div>
<a id="trunkSourceWebCoreModulesindexeddblegacyIDBTransactionBackendOperationscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -101,12 +101,12 @@
</span><span class="cx"> m_callbacks->onError(error);
</span><span class="cx"> else {
</span><span class="cx"> if (!result.valueBuffer) {
</span><del>- if (result.keyData.isNull)
</del><ins>+ if (result.keyData.isNull())
</ins><span class="cx"> m_callbacks->onSuccess();
</span><span class="cx"> else
</span><span class="cx"> m_callbacks->onSuccess(result.keyData.maybeCreateIDBKey());
</span><span class="cx"> } else {
</span><del>- if (!result.keyData.isNull)
</del><ins>+ if (!result.keyData.isNull())
</ins><span class="cx"> m_callbacks->onSuccess(result.valueBuffer, result.keyData.maybeCreateIDBKey(), result.keyPath);
</span><span class="cx"> else
</span><span class="cx"> m_callbacks->onSuccess(result.valueBuffer.get());
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsIDBBindingUtilitiesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> class SharedBuffer;
</span><span class="cx">
</span><span class="cx"> struct IDBIndexMetadata;
</span><del>-struct IDBKeyData;
</del><ins>+class IDBKeyData;
</ins><span class="cx">
</span><span class="cx"> IDBKeyPath idbKeyPathFromValue(JSC::ExecState*, JSC::JSValue);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformCrossThreadCopierh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/CrossThreadCopier.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/CrossThreadCopier.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebCore/platform/CrossThreadCopier.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -173,7 +173,7 @@
</span><span class="cx"> static Type copy(const IDBIndexMetadata&);
</span><span class="cx"> };
</span><span class="cx">
</span><del>- struct IDBKeyData;
</del><ins>+ class IDBKeyData;
</ins><span class="cx"> template<> struct WEBCORE_EXPORT CrossThreadCopierBase<false, false, IDBKeyData> {
</span><span class="cx"> typedef IDBKeyData Type;
</span><span class="cx"> static Type copy(const IDBKeyData&);
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/ChangeLog        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -1,3 +1,31 @@
</span><ins>+2015-10-26 Brady Eidson <beidson@apple.com>
+
+ Make IDBKeyData from a struct to a class.
+ https://bugs.webkit.org/show_bug.cgi?id=150576
+
+ Reviewed by Alex Christensen.
+
+ * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:
+ * DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in:
+ * DatabaseProcess/IndexedDB/IDBSerialization.h:
+ * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
+ (WebKit::UniqueIDBDatabase::putRecordInBackingStore):
+ * DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
+ * DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h:
+ * DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp:
+ (WebKit::buildIndexStatement):
+ (WebKit::buildObjectStoreStatement):
+ (WebKit::SQLiteIDBCursor::establishStatement):
+ (WebKit::SQLiteIDBCursor::createSQLiteStatement):
+ (WebKit::SQLiteIDBCursor::resetAndRebindStatement):
+ (WebKit::SQLiteIDBCursor::iterate):
+ * DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:
+ (WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):
+ * WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
+ (WebKit::WebIDBServerConnection::didPutRecord):
+ * WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
+ * WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in:
+
</ins><span class="cx"> 2015-10-26 Philip Chimento <philip.chimento@gmail.com>
</span><span class="cx">
</span><span class="cx"> [GTK] [Stable] InstallMissingMediaPluginsPermissionRequest not defined when building without GStreamer
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -36,7 +36,7 @@
</span><span class="cx"> #include <wtf/text/WTFString.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><del>-struct IDBKeyData;
</del><ins>+class IDBKeyData;
</ins><span class="cx"> struct IDBKeyRangeData;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBDatabaseProcessIDBConnectionmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.messages.in        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -43,12 +43,12 @@
</span><span class="cx"> CreateIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, struct WebCore::IDBIndexMetadata indexMetadata)
</span><span class="cx"> DeleteIndex(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID)
</span><span class="cx">
</span><del>- PutRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, struct WebCore::IDBKeyData key, IPC::DataReference value, int64_t putMode, Vector<int64_t> indexIDs, Vector<Vector<WebCore::IDBKeyData>> indexKeys)
</del><ins>+ PutRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, WebCore::IDBKeyData key, IPC::DataReference value, int64_t putMode, Vector<int64_t> indexIDs, Vector<Vector<WebCore::IDBKeyData>> indexKeys)
</ins><span class="cx"> GetRecord(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, struct WebCore::IDBKeyRangeData keyRange, int64_t cursorType)
</span><span class="cx">
</span><span class="cx"> OpenCursor(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, int64_t cursorDirection, int64_t cursorType, int64_t taskType, struct WebCore::IDBKeyRangeData keyRange)
</span><span class="cx"> CursorAdvance(uint64_t requestID, int64_t cursorID, uint64_t count)
</span><del>- CursorIterate(uint64_t requestID, int64_t cursorID, struct WebCore::IDBKeyData key)
</del><ins>+ CursorIterate(uint64_t requestID, int64_t cursorID, WebCore::IDBKeyData key)
</ins><span class="cx">
</span><span class="cx"> Count(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, int64_t indexID, struct WebCore::IDBKeyRangeData keyRange)
</span><span class="cx"> DeleteRange(uint64_t requestID, int64_t transactionID, int64_t objectStoreID, struct WebCore::IDBKeyRangeData keyRange)
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBIDBSerializationh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/IDBSerialization.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -32,9 +32,8 @@
</span><span class="cx"> #include <wtf/Vector.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><ins>+class IDBKeyData;
</ins><span class="cx"> class IDBKeyPath;
</span><del>-
-struct IDBKeyData;
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -829,7 +829,7 @@
</span><span class="cx"> IDBKeyData key;
</span><span class="cx"> int64_t keyNumber = 0;
</span><span class="cx">
</span><del>- if (putMode != IDBDatabaseBackend::CursorUpdate && objectStoreMetadata.autoIncrement && inputKeyData.isNull) {
</del><ins>+ if (putMode != IDBDatabaseBackend::CursorUpdate && objectStoreMetadata.autoIncrement && inputKeyData.isNull()) {
</ins><span class="cx"> if (!m_backingStore->generateKeyNumber(transaction, objectStoreMetadata.id, keyNumber)) {
</span><span class="cx"> postMainThreadTask(createCrossThreadTask(*this, &UniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral("Internal backing store error checking for key existence")));
</span><span class="cx"> return;
</span><span class="lines">@@ -875,7 +875,7 @@
</span><span class="cx">
</span><span class="cx"> m_backingStore->notifyCursorsOfChanges(transaction, objectStoreMetadata.id);
</span><span class="cx">
</span><del>- if (putMode != IDBDatabaseBackend::CursorUpdate && objectStoreMetadata.autoIncrement && key.type == KeyType::Number) {
</del><ins>+ if (putMode != IDBDatabaseBackend::CursorUpdate && objectStoreMetadata.autoIncrement && key.type() == KeyType::Number) {
</ins><span class="cx"> if (!m_backingStore->updateKeyGeneratorNumber(transaction, objectStoreMetadata.id, keyNumber, keyWasGenerated)) {
</span><span class="cx"> postMainThreadTask(createCrossThreadTask(*this, &UniqueIDBDatabase::didPutRecordInBackingStore, requestID, IDBKeyData(), IDBDatabaseException::UnknownError, ASCIILiteral("Internal backing store error updating key generator")));
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -46,11 +46,11 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class CrossThreadTask;
</span><ins>+class IDBKeyData;
</ins><span class="cx"> class SharedBuffer;
</span><span class="cx">
</span><span class="cx"> struct IDBDatabaseMetadata;
</span><span class="cx"> struct IDBGetResult;
</span><del>-struct IDBKeyData;
</del><span class="cx"> struct IDBKeyRangeData;
</span><span class="cx"> struct SecurityOriginData;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBUniqueIDBDatabaseBackingStoreh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabaseBackingStore.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -33,12 +33,12 @@
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> class IDBKey;
</span><ins>+class IDBKeyData;
</ins><span class="cx"> class IDBKeyRange;
</span><span class="cx"> class SharedBuffer;
</span><span class="cx">
</span><span class="cx"> struct IDBDatabaseMetadata;
</span><span class="cx"> struct IDBGetResult;
</span><del>-struct IDBKeyData;
</del><span class="cx"> struct IDBObjectStoreMetadata;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBsqliteSQLiteIDBCursorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/SQLiteIDBCursor.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -72,13 +72,13 @@
</span><span class="cx"> StringBuilder builder;
</span><span class="cx">
</span><span class="cx"> builder.appendLiteral("SELECT rowid, key, value FROM IndexRecords WHERE indexID = ? AND key ");
</span><del>- if (!keyRange.lowerKey.isNull && !keyRange.lowerOpen)
</del><ins>+ if (!keyRange.lowerKey.isNull() && !keyRange.lowerOpen)
</ins><span class="cx"> builder.appendLiteral(">=");
</span><span class="cx"> else
</span><span class="cx"> builder.append('>');
</span><span class="cx">
</span><span class="cx"> builder.appendLiteral(" CAST(? AS TEXT) AND key ");
</span><del>- if (!keyRange.upperKey.isNull && !keyRange.upperOpen)
</del><ins>+ if (!keyRange.upperKey.isNull() && !keyRange.upperOpen)
</ins><span class="cx"> builder.appendLiteral("<=");
</span><span class="cx"> else
</span><span class="cx"> builder.append('<');
</span><span class="lines">@@ -102,14 +102,14 @@
</span><span class="cx">
</span><span class="cx"> builder.appendLiteral("SELECT rowid, key, value FROM Records WHERE objectStoreID = ? AND key ");
</span><span class="cx">
</span><del>- if (!keyRange.lowerKey.isNull && !keyRange.lowerOpen)
</del><ins>+ if (!keyRange.lowerKey.isNull() && !keyRange.lowerOpen)
</ins><span class="cx"> builder.appendLiteral(">=");
</span><span class="cx"> else
</span><span class="cx"> builder.append('>');
</span><span class="cx">
</span><span class="cx"> builder.appendLiteral(" CAST(? AS TEXT) AND key ");
</span><span class="cx">
</span><del>- if (!keyRange.upperKey.isNull && !keyRange.upperOpen)
</del><ins>+ if (!keyRange.upperKey.isNull() && !keyRange.upperOpen)
</ins><span class="cx"> builder.appendLiteral("<=");
</span><span class="cx"> else
</span><span class="cx"> builder.append('<');
</span><span class="lines">@@ -137,8 +137,8 @@
</span><span class="cx"> m_boundID = m_objectStoreID;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- m_currentLowerKey = m_keyRange.lowerKey.isNull ? IDBKeyData::minimum() : m_keyRange.lowerKey;
- m_currentUpperKey = m_keyRange.upperKey.isNull ? IDBKeyData::maximum() : m_keyRange.upperKey;
</del><ins>+ m_currentLowerKey = m_keyRange.lowerKey.isNull() ? IDBKeyData::minimum() : m_keyRange.lowerKey;
+ m_currentUpperKey = m_keyRange.upperKey.isNull() ? IDBKeyData::maximum() : m_keyRange.upperKey;
</ins><span class="cx">
</span><span class="cx"> return createSQLiteStatement(sql);
</span><span class="cx"> }
</span><span class="lines">@@ -147,8 +147,8 @@
</span><span class="cx"> {
</span><span class="cx"> LOG(IDB, "Creating cursor with SQL query: \"%s\"", sql.utf8().data());
</span><span class="cx">
</span><del>- ASSERT(!m_currentLowerKey.isNull);
- ASSERT(!m_currentUpperKey.isNull);
</del><ins>+ ASSERT(!m_currentLowerKey.isNull());
+ ASSERT(!m_currentUpperKey.isNull());
</ins><span class="cx"> ASSERT(m_transaction->sqliteTransaction());
</span><span class="cx">
</span><span class="cx"> m_statement = std::make_unique<SQLiteStatement>(m_transaction->sqliteTransaction()->database(), sql);
</span><span class="lines">@@ -171,8 +171,8 @@
</span><span class="cx">
</span><span class="cx"> void SQLiteIDBCursor::resetAndRebindStatement()
</span><span class="cx"> {
</span><del>- ASSERT(!m_currentLowerKey.isNull);
- ASSERT(!m_currentUpperKey.isNull);
</del><ins>+ ASSERT(!m_currentLowerKey.isNull());
+ ASSERT(!m_currentUpperKey.isNull());
</ins><span class="cx"> ASSERT(m_transaction->sqliteTransaction());
</span><span class="cx"> ASSERT(m_statement);
</span><span class="cx"> ASSERT(m_statementNeedsReset);
</span><span class="lines">@@ -180,7 +180,7 @@
</span><span class="cx"> m_statementNeedsReset = false;
</span><span class="cx">
</span><span class="cx"> // If this cursor never fetched any records, we don't need to reset the statement.
</span><del>- if (m_currentKey.isNull)
</del><ins>+ if (m_currentKey.isNull())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Otherwise update the lower key or upper key used for the cursor range.
</span><span class="lines">@@ -368,7 +368,7 @@
</span><span class="cx"> bool result = advance(1);
</span><span class="cx">
</span><span class="cx"> // Iterating with no key is equivalent to advancing 1 step.
</span><del>- if (targetKey.isNull || !result)
</del><ins>+ if (targetKey.isNull() || !result)
</ins><span class="cx"> return result;
</span><span class="cx">
</span><span class="cx"> while (!m_completed) {
</span></span></pre></div>
<a id="trunkSourceWebKit2DatabaseProcessIndexedDBsqliteUniqueIDBDatabaseBackingStoreSQLitecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -762,7 +762,7 @@
</span><span class="cx"> m_cursors.set(cursor->identifier(), cursor);
</span><span class="cx">
</span><span class="cx"> std::unique_ptr<JSLockHolder> locker;
</span><del>- while (!cursor->currentKey().isNull) {
</del><ins>+ while (!cursor->currentKey().isNull()) {
</ins><span class="cx"> const IDBKeyData& key = cursor->currentKey();
</span><span class="cx"> const Vector<uint8_t>& valueBuffer = cursor->currentValueBuffer();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -454,7 +454,7 @@
</span><span class="cx"> if (!serverRequest)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- serverRequest->completeRequest(resultKey.isNull ? nullptr : resultKey.maybeCreateIDBKey(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
</del><ins>+ serverRequest->completeRequest(resultKey.isNull() ? nullptr : resultKey.maybeCreateIDBKey(), errorCode ? IDBDatabaseError::create(errorCode, errorMessage) : nullptr);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebIDBServerConnection::didGetRecord(uint64_t requestID, const WebCore::IDBGetResult& getResult, uint32_t errorCode, const String& errorMessage)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.h        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx"> #include <WebCore/IDBServerConnection.h>
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><del>-struct IDBKeyData;
</del><ins>+class IDBKeyData;
</ins><span class="cx"> class SecurityOrigin;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessDatabasesIndexedDBWebIDBServerConnectionmessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in (191619 => 191620)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in        2015-10-27 05:16:17 UTC (rev 191619)
+++ trunk/Source/WebKit2/WebProcess/Databases/IndexedDB/WebIDBServerConnection.messages.in        2015-10-27 05:22:55 UTC (rev 191620)
</span><span class="lines">@@ -40,11 +40,11 @@
</span><span class="cx"> DidCreateIndex(uint64_t requestID, bool success)
</span><span class="cx"> DidDeleteIndex(uint64_t requestID, bool success)
</span><span class="cx">
</span><del>- DidPutRecord(uint64_t requestID, struct WebCore::IDBKeyData resultKey, uint32_t errorCode, String errorMessage)
</del><ins>+ DidPutRecord(uint64_t requestID, WebCore::IDBKeyData resultKey, uint32_t errorCode, String errorMessage)
</ins><span class="cx"> DidGetRecord(uint64_t requestID, struct WebCore::IDBGetResult getResult, uint32_t errorCode, String errorMessage)
</span><del>- DidOpenCursor(uint64_t requestID, int64_t cursorID, struct WebCore::IDBKeyData key, struct WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
- DidAdvanceCursor(uint64_t requestID, struct WebCore::IDBKeyData key, struct WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
- DidIterateCursor(uint64_t requestID, struct WebCore::IDBKeyData key, struct WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
</del><ins>+ DidOpenCursor(uint64_t requestID, int64_t cursorID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
+ DidAdvanceCursor(uint64_t requestID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
+ DidIterateCursor(uint64_t requestID, WebCore::IDBKeyData key, WebCore::IDBKeyData primaryKey, IPC::DataReference value, uint32_t errorCode, String errorMessage)
</ins><span class="cx"> DidCount(uint64_t requestID, int64_t count, uint32_t errorCode, String errorMessage)
</span><span class="cx"> DidDeleteRange(uint64_t requestID, uint32_t errorCode, String errorMessage)
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>