Title: [201665] trunk/Source/WebCore
Revision
201665
Author
[email protected]
Date
2016-06-03 15:31:02 -0700 (Fri, 03 Jun 2016)

Log Message

More miscellaneous IDBBindingUtilities cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158359

Reviewed by Tim Horton.

No new tests (Straight refactor, yo).

Replace more ScriptExecutionContext&s with ExecState&s.
Combine more unnecessarily separate functions.
Remove some cruft.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setGetResult):

* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

* Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

* Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

* bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueToJSValue):
(WebCore::idbKeyDataToScriptValue):
(WebCore::deserializeIDBValueDataToJSValue): Deleted.
* bindings/js/IDBBindingUtilities.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (201664 => 201665)


--- trunk/Source/WebCore/ChangeLog	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/ChangeLog	2016-06-03 22:31:02 UTC (rev 201665)
@@ -1,3 +1,40 @@
+2016-06-03  Brady Eidson  <[email protected]>
+
+        More miscellaneous IDBBindingUtilities cleanup.
+        https://bugs.webkit.org/show_bug.cgi?id=158359
+
+        Reviewed by Tim Horton.
+
+        No new tests (Straight refactor, yo).
+
+        Replace more ScriptExecutionContext&s with ExecState&s.
+        Combine more unnecessarily separate functions.
+        Remove some cruft.
+        
+        * Modules/indexeddb/IDBCursor.cpp:
+        (WebCore::IDBCursor::setGetResult):
+        
+        * Modules/indexeddb/IDBRequest.cpp:
+        (WebCore::IDBRequest::setResult):
+        (WebCore::IDBRequest::setResultToStructuredClone):
+        
+        * Modules/indexeddb/server/MemoryObjectStore.cpp:
+        (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
+        (WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
+        
+        * Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
+        (WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
+        (WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
+        
+        * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
+        (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
+        
+        * bindings/js/IDBBindingUtilities.cpp:
+        (WebCore::deserializeIDBValueToJSValue):
+        (WebCore::idbKeyDataToScriptValue):
+        (WebCore::deserializeIDBValueDataToJSValue): Deleted.
+        * bindings/js/IDBBindingUtilities.h:
+
 2016-06-03  Chris Dumez  <[email protected]>
 
         CanvasRenderingContext2D.createPattern() / putImageData() throw wrong exception type

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp (201664 => 201665)


--- trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBCursor.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -399,6 +399,10 @@
     if (!context)
         return;
 
+    auto* exec = context->execState();
+    if (!exec)
+        return;
+
     if (!getResult.isDefined()) {
         m_currentKey = { };
         m_currentKeyData = { };
@@ -412,13 +416,13 @@
 
     auto& vm = context->vm();
 
-    m_currentKey = { vm, idbKeyDataToScriptValue(*context, getResult.keyData()) };
+    m_currentKey = { vm, idbKeyDataToScriptValue(*exec, getResult.keyData()) };
     m_currentKeyData = getResult.keyData();
-    m_currentPrimaryKey = { vm, idbKeyDataToScriptValue(*context, getResult.primaryKeyData()) };
+    m_currentPrimaryKey = { vm, idbKeyDataToScriptValue(*exec, getResult.primaryKeyData()) };
     m_currentPrimaryKeyData = getResult.primaryKeyData();
 
     if (isKeyCursorWithValue())
-        m_currentValue = { vm, deserializeIDBValueToJSValue(*context, getResult.value()) };
+        m_currentValue = { vm, deserializeIDBValueToJSValue(*exec, getResult.value()) };
     else
         m_currentValue = { };
 

Modified: trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp (201664 => 201665)


--- trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBRequest.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -330,8 +330,12 @@
     if (!context)
         return;
 
+    auto* exec = context->execState();
+    if (!exec)
+        return;
+
     clearResult();
-    m_scriptResult = { context->vm(), idbKeyDataToScriptValue(*context, keyData) };
+    m_scriptResult = { context->vm(), idbKeyDataToScriptValue(*exec, keyData) };
 }
 
 void IDBRequest::setResult(uint64_t number)
@@ -356,8 +360,12 @@
     if (!context)
         return;
 
+    auto* exec = context->execState();
+    if (!exec)
+        return;
+
     clearResult();
-    m_scriptResult = { context->vm(), deserializeIDBValueToJSValue(*context, value) };
+    m_scriptResult = { context->vm(), deserializeIDBValueToJSValue(*exec, value) };
 }
 
 void IDBRequest::clearResult()

Modified: trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp (201664 => 201665)


--- trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -303,7 +303,7 @@
 {
     JSLockHolder locker(UniqueIDBDatabase::databaseThreadVM());
 
-    auto jsValue = deserializeIDBValueDataToJSValue(UniqueIDBDatabase::databaseThreadExecState(), value);
+    auto jsValue = deserializeIDBValueToJSValue(UniqueIDBDatabase::databaseThreadExecState(), value);
     if (jsValue.isUndefinedOrNull())
         return { };
 
@@ -341,7 +341,7 @@
     JSLockHolder locker(UniqueIDBDatabase::databaseThreadVM());
 
     for (auto iterator : *m_keyValueStore) {
-        auto jsValue = deserializeIDBValueDataToJSValue(UniqueIDBDatabase::databaseThreadExecState(), iterator.value);
+        auto jsValue = deserializeIDBValueToJSValue(UniqueIDBDatabase::databaseThreadExecState(), iterator.value);
         if (jsValue.isUndefinedOrNull())
             return { };
 

Modified: trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp (201664 => 201665)


--- trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -1480,7 +1480,7 @@
 {
     JSLockHolder locker(vm());
 
-    auto jsValue = deserializeIDBValueDataToJSValue(*globalObject().globalExec(), value);
+    auto jsValue = deserializeIDBValueToJSValue(*globalObject().globalExec(), value);
     if (jsValue.isUndefinedOrNull())
         return { };
 
@@ -1497,7 +1497,7 @@
 {
     JSLockHolder locker(vm());
 
-    auto jsValue = deserializeIDBValueDataToJSValue(*globalObject().globalExec(), value);
+    auto jsValue = deserializeIDBValueToJSValue(*globalObject().globalExec(), value);
     if (jsValue.isUndefinedOrNull())
         return { };
 

Modified: trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp (201664 => 201665)


--- trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -851,7 +851,7 @@
     if (usedKeyIsGenerated && !objectStoreInfo->keyPath().isNull()) {
         JSLockHolder locker(databaseThreadVM());
 
-        auto value = deserializeIDBValueDataToJSValue(databaseThreadExecState(), originalRecordValue.data());
+        auto value = deserializeIDBValueToJSValue(databaseThreadExecState(), originalRecordValue.data());
         if (value.isUndefined()) {
             postDatabaseTaskReply(createCrossThreadTask(*this, &UniqueIDBDatabase::didPerformPutOrAdd, callbackIdentifier, IDBError(IDBDatabaseException::ConstraintError, ASCIILiteral("Unable to deserialize record value for record key injection")), usedKey));
             return;

Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp (201664 => 201665)


--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.cpp	2016-06-03 22:31:02 UTC (rev 201665)
@@ -307,8 +307,7 @@
     return canInjectNthValueOnKeyPath(exec, scriptValue, keyPathElements, keyPathElements.size() - 1);
 }
 
-
-static JSValue deserializeIDBValueToJSValue(ExecState& exec, const IDBValue& value)
+JSValue deserializeIDBValueToJSValue(ExecState& exec, const IDBValue& value)
 {
     // FIXME: I think it's peculiar to use undefined to mean "null data" and null to mean "empty data".
     // But I am not changing this at the moment because at least some callers are specifically checking isUndefined.
@@ -329,36 +328,15 @@
     return result;
 }
 
-JSValue deserializeIDBValueToJSValue(ScriptExecutionContext& context, const IDBValue& value)
-{
-    // FIXME: I think it's peculiar to return an empty JSValue, undefined, and null for three different error cases.
-
-    auto* exec = context.execState();
-    if (!exec)
-        return { };
-
-    return deserializeIDBValueToJSValue(*exec, value);
-}
-
-JSValue deserializeIDBValueDataToJSValue(ExecState& exec, const ThreadSafeDataBuffer& valueData)
-{
-    return deserializeIDBValueToJSValue(exec, IDBValue(valueData));
-}
-
 Ref<IDBKey> scriptValueToIDBKey(ExecState& exec, const JSValue& scriptValue)
 {
     return createIDBKeyFromValue(exec, scriptValue);
 }
 
-JSC::JSValue idbKeyDataToScriptValue(ScriptExecutionContext& context, const IDBKeyData& keyData)
+JSC::JSValue idbKeyDataToScriptValue(JSC::ExecState& exec, const IDBKeyData& keyData)
 {
     RefPtr<IDBKey> key = keyData.maybeCreateIDBKey();
-
-    ExecState* exec = context.execState();
-    if (!exec)
-        return { };
-
-    return toJS(*exec, *exec->lexicalGlobalObject(), key.get());
+    return toJS(exec, *exec.lexicalGlobalObject(), key.get());
 }
 
 static Vector<IDBKeyData> createKeyPathArray(ExecState& exec, JSValue value, const IDBIndexInfo& info)

Modified: trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h (201664 => 201665)


--- trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h	2016-06-03 22:26:50 UTC (rev 201664)
+++ trunk/Source/WebCore/bindings/js/IDBBindingUtilities.h	2016-06-03 22:31:02 UTC (rev 201665)
@@ -45,7 +45,6 @@
 class IDBValue;
 class IndexKey;
 class JSDOMGlobalObject;
-class ScriptExecutionContext;
 class ThreadSafeDataBuffer;
 
 IDBKeyPath idbKeyPathFromValue(JSC::ExecState&, JSC::JSValue);
@@ -56,11 +55,10 @@
 bool injectIDBKeyIntoScriptValue(JSC::ExecState&, const IDBKeyData&, JSC::JSValue, const IDBKeyPath&);
 
 JSC::JSValue toJS(JSC::ExecState&, JSC::JSGlobalObject&, IDBKey*);
-JSC::JSValue idbKeyDataToScriptValue(ScriptExecutionContext&, const IDBKeyData&);
+JSC::JSValue idbKeyDataToScriptValue(JSC::ExecState&, const IDBKeyData&);
 void generateIndexKeyForValue(JSC::ExecState&, const IDBIndexInfo&, JSC::JSValue, IndexKey& outKey);
 
-JSC::JSValue deserializeIDBValueToJSValue(ScriptExecutionContext&, const IDBValue&);
-JSC::JSValue deserializeIDBValueDataToJSValue(JSC::ExecState&, const ThreadSafeDataBuffer& valueData);
+JSC::JSValue deserializeIDBValueToJSValue(JSC::ExecState&, const IDBValue&);
 
 Ref<IDBKey> scriptValueToIDBKey(JSC::ExecState&, const JSC::JSValue&);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to