Index: content/browser/indexed_db/indexed_db_callbacks.cc |
diff --git a/content/browser/indexed_db/indexed_db_callbacks.cc b/content/browser/indexed_db/indexed_db_callbacks.cc |
index f7268195d8bc7cb6a66a80bb53277bd16644327c..a3a707d788ca8fd6a3bb45ad653d0ed758a41086 100644 |
--- a/content/browser/indexed_db/indexed_db_callbacks.cc |
+++ b/content/browser/indexed_db/indexed_db_callbacks.cc |
@@ -76,15 +76,6 @@ void ConvertBlobInfo( |
return mojo_value; |
} |
-// Destructively converts an IndexedDBValue to a Mojo Value. |
-::indexed_db::mojom::ValuePtr ConvertValue(IndexedDBValue* value) { |
- auto mojo_value = ::indexed_db::mojom::Value::New(); |
- if (!value->empty()) |
- swap(mojo_value->bits, value->bits); |
- ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info); |
- return mojo_value; |
-} |
- |
} // namespace |
class IndexedDBCallbacks::IOThreadHelper { |
@@ -140,6 +131,16 @@ class IndexedDBCallbacks::IOThreadHelper { |
DISALLOW_COPY_AND_ASSIGN(IOThreadHelper); |
}; |
+// static |
+::indexed_db::mojom::ValuePtr IndexedDBCallbacks::ConvertAndEraseValue( |
+ IndexedDBValue* value) { |
+ auto mojo_value = ::indexed_db::mojom::Value::New(); |
+ if (!value->empty()) |
+ swap(mojo_value->bits, value->bits); |
+ ConvertBlobInfo(value->blob_info, &mojo_value->blob_or_file_info); |
+ return mojo_value; |
+} |
+ |
IndexedDBCallbacks::IndexedDBCallbacks( |
scoped_refptr<IndexedDBDispatcherHost> dispatcher_host, |
const url::Origin& origin, |
@@ -291,7 +292,7 @@ void IndexedDBCallbacks::OnSuccess(std::unique_ptr<IndexedDBCursor> cursor, |
::indexed_db::mojom::ValuePtr mojo_value; |
std::vector<IndexedDBBlobInfo> blob_info; |
if (value) { |
- mojo_value = ConvertValue(value); |
+ mojo_value = ConvertAndEraseValue(value); |
blob_info.swap(value->blob_info); |
} |
@@ -316,7 +317,7 @@ void IndexedDBCallbacks::OnSuccess(const IndexedDBKey& key, |
::indexed_db::mojom::ValuePtr mojo_value; |
std::vector<IndexedDBBlobInfo> blob_info; |
if (value) { |
- mojo_value = ConvertValue(value); |
+ mojo_value = ConvertAndEraseValue(value); |
blob_info.swap(value->blob_info); |
} |
@@ -343,7 +344,7 @@ void IndexedDBCallbacks::OnSuccessWithPrefetch( |
std::vector<::indexed_db::mojom::ValuePtr> mojo_values; |
mojo_values.reserve(values->size()); |
for (size_t i = 0; i < values->size(); ++i) |
- mojo_values.push_back(ConvertValue(&(*values)[i])); |
+ mojo_values.push_back(ConvertAndEraseValue(&(*values)[i])); |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |