Title: [103052] trunk/Source/WebCore
Revision
103052
Author
h...@chromium.org
Date
2011-12-16 02:51:22 -0800 (Fri, 16 Dec 2011)

Log Message

IndexedDB: Don't prefetch values from key cursors
https://bugs.webkit.org/show_bug.cgi?id=74604

Reviewed by Tony Chang.

Since index key cursors don't have values, prefetching should not try
to retrieve them. Doing so trips an ASSERT in debug builds.

This will be tested Chromium-side.

* storage/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::prefetchContinueInternal):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (103051 => 103052)


--- trunk/Source/WebCore/ChangeLog	2011-12-16 10:48:05 UTC (rev 103051)
+++ trunk/Source/WebCore/ChangeLog	2011-12-16 10:51:22 UTC (rev 103052)
@@ -1,3 +1,18 @@
+2011-12-15  Hans Wennborg  <h...@chromium.org>
+
+        IndexedDB: Don't prefetch values from key cursors
+        https://bugs.webkit.org/show_bug.cgi?id=74604
+
+        Reviewed by Tony Chang.
+
+        Since index key cursors don't have values, prefetching should not try
+        to retrieve them. Doing so trips an ASSERT in debug builds.
+
+        This will be tested Chromium-side.
+
+        * storage/IDBCursorBackendImpl.cpp:
+        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
+
 2011-12-16  Yosifumi Inoue  <yo...@chromium.org>
 
         [Forms] The "maxlength" attribute on "textarea" tag miscounts hard newlines

Modified: trunk/Source/WebCore/storage/IDBCursorBackendImpl.cpp (103051 => 103052)


--- trunk/Source/WebCore/storage/IDBCursorBackendImpl.cpp	2011-12-16 10:48:05 UTC (rev 103051)
+++ trunk/Source/WebCore/storage/IDBCursorBackendImpl.cpp	2011-12-16 10:51:22 UTC (rev 103052)
@@ -149,11 +149,16 @@
 
         foundKeys.append(cursor->m_cursor->key());
         foundPrimaryKeys.append(cursor->m_cursor->primaryKey());
-        foundValues.append(SerializedScriptValue::createFromWire(cursor->m_cursor->value()));
 
+        if (cursor->m_cursorType != IDBCursorBackendInterface::IndexKeyCursor)
+            foundValues.append(SerializedScriptValue::createFromWire(cursor->m_cursor->value()));
+        else
+            foundValues.append(SerializedScriptValue::create());
+
         sizeEstimate += cursor->m_cursor->key()->sizeEstimate();
         sizeEstimate += cursor->m_cursor->primaryKey()->sizeEstimate();
-        sizeEstimate += cursor->m_cursor->value().length() * sizeof(UChar);
+        if (cursor->m_cursorType != IDBCursorBackendInterface::IndexKeyCursor)
+            sizeEstimate += cursor->m_cursor->value().length() * sizeof(UChar);
 
         if (sizeEstimate > kMaxSizeEstimate)
             break;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to