summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/WebIDBKey.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/chromium/src/WebIDBKey.cpp')
-rw-r--r--Source/WebKit/chromium/src/WebIDBKey.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/Source/WebKit/chromium/src/WebIDBKey.cpp b/Source/WebKit/chromium/src/WebIDBKey.cpp
index 35be9f3b2..25be6c52f 100644
--- a/Source/WebKit/chromium/src/WebIDBKey.cpp
+++ b/Source/WebKit/chromium/src/WebIDBKey.cpp
@@ -76,10 +76,18 @@ WebIDBKey WebIDBKey::createInvalid()
return key;
}
+WebIDBKey WebIDBKey::createNull()
+{
+ WebIDBKey key;
+ key.assignNull();
+ return key;
+}
+
WebIDBKey WebIDBKey::createFromValueAndKeyPath(const WebSerializedScriptValue& serializedScriptValue, const WebIDBKeyPath& idbKeyPath)
{
+ // FIXME: If key path is empty string, this should return invalid key instead
if (serializedScriptValue.isNull())
- return WebIDBKey::createInvalid();
+ return WebIDBKey::createNull();
return createIDBKeyFromSerializedValueAndKeyPath(serializedScriptValue, idbKeyPath);
}
@@ -112,6 +120,7 @@ static PassRefPtr<IDBKey> convertFromWebIDBKeyArray(const WebVector<WebIDBKey>&
keys.append(IDBKey::createNumber(array[i].number()));
break;
case WebIDBKey::InvalidType:
+ case WebIDBKey::NullType:
ASSERT_NOT_REACHED();
break;
}
@@ -170,6 +179,11 @@ void WebIDBKey::assignNumber(double number)
void WebIDBKey::assignInvalid()
{
+ m_private = IDBKey::createInvalid();
+}
+
+void WebIDBKey::assignNull()
+{
m_private = 0;
}
@@ -181,7 +195,7 @@ void WebIDBKey::reset()
WebIDBKey::Type WebIDBKey::type() const
{
if (!m_private.get())
- return InvalidType;
+ return NullType;
return Type(m_private->type());
}