OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/indexeddb/IDBValue.h" | 5 #include "modules/indexeddb/IDBValue.h" |
6 | 6 |
7 #include "platform/blob/BlobData.h" | 7 #include "platform/blob/BlobData.h" |
8 #include "public/platform/WebBlobInfo.h" | 8 #include "public/platform/WebBlobInfo.h" |
9 #include "public/platform/modules/indexeddb/WebIDBValue.h" | 9 #include "public/platform/modules/indexeddb/WebIDBValue.h" |
| 10 #include "wtf/PtrUtil.h" |
10 | 11 |
11 namespace blink { | 12 namespace blink { |
12 | 13 |
13 IDBValue::IDBValue() = default; | 14 IDBValue::IDBValue() = default; |
14 | 15 |
15 IDBValue::IDBValue(const WebIDBValue& value) | 16 IDBValue::IDBValue(const WebIDBValue& value) |
16 : IDBValue(value.data, value.webBlobInfo, value.primaryKey, value.keyPath) | 17 : IDBValue(value.data, value.webBlobInfo, value.primaryKey, value.keyPath) |
17 { | 18 { |
18 } | 19 } |
19 | 20 |
20 IDBValue::IDBValue(PassRefPtr<SharedBuffer> data, const WebVector<WebBlobInfo>&
webBlobInfo, IDBKey* primaryKey, const IDBKeyPath& keyPath) | 21 IDBValue::IDBValue(PassRefPtr<SharedBuffer> data, const WebVector<WebBlobInfo>&
webBlobInfo, IDBKey* primaryKey, const IDBKeyPath& keyPath) |
21 : m_data(data) | 22 : m_data(data) |
22 , m_blobData(adoptPtr(new Vector<RefPtr<BlobDataHandle>>())) | 23 , m_blobData(wrapUnique(new Vector<RefPtr<BlobDataHandle>>())) |
23 , m_blobInfo(adoptPtr(new Vector<WebBlobInfo>(webBlobInfo.size()))) | 24 , m_blobInfo(wrapUnique(new Vector<WebBlobInfo>(webBlobInfo.size()))) |
24 , m_primaryKey(primaryKey && primaryKey->isValid() ? primaryKey : nullptr) | 25 , m_primaryKey(primaryKey && primaryKey->isValid() ? primaryKey : nullptr) |
25 , m_keyPath(keyPath) | 26 , m_keyPath(keyPath) |
26 { | 27 { |
27 for (size_t i = 0; i < webBlobInfo.size(); ++i) { | 28 for (size_t i = 0; i < webBlobInfo.size(); ++i) { |
28 const WebBlobInfo& info = (*m_blobInfo)[i] = webBlobInfo[i]; | 29 const WebBlobInfo& info = (*m_blobInfo)[i] = webBlobInfo[i]; |
29 m_blobData->append(BlobDataHandle::create(info.uuid(), info.type(), info
.size())); | 30 m_blobData->append(BlobDataHandle::create(info.uuid(), info.type(), info
.size())); |
30 } | 31 } |
31 } | 32 } |
32 | 33 |
33 IDBValue::IDBValue(const IDBValue* value, IDBKey* primaryKey, const IDBKeyPath&
keyPath) | 34 IDBValue::IDBValue(const IDBValue* value, IDBKey* primaryKey, const IDBKeyPath&
keyPath) |
34 : m_data(value->m_data) | 35 : m_data(value->m_data) |
35 , m_blobData(adoptPtr(new Vector<RefPtr<BlobDataHandle>>())) | 36 , m_blobData(wrapUnique(new Vector<RefPtr<BlobDataHandle>>())) |
36 , m_blobInfo(adoptPtr(new Vector<WebBlobInfo>(value->m_blobInfo->size()))) | 37 , m_blobInfo(wrapUnique(new Vector<WebBlobInfo>(value->m_blobInfo->size()))) |
37 , m_primaryKey(primaryKey) | 38 , m_primaryKey(primaryKey) |
38 , m_keyPath(keyPath) | 39 , m_keyPath(keyPath) |
39 { | 40 { |
40 for (size_t i = 0; i < value->m_blobInfo->size(); ++i) { | 41 for (size_t i = 0; i < value->m_blobInfo->size(); ++i) { |
41 const WebBlobInfo& info = (*m_blobInfo)[i] = value->m_blobInfo->at(i); | 42 const WebBlobInfo& info = (*m_blobInfo)[i] = value->m_blobInfo->at(i); |
42 m_blobData->append(BlobDataHandle::create(info.uuid(), info.type(), info
.size())); | 43 m_blobData->append(BlobDataHandle::create(info.uuid(), info.type(), info
.size())); |
43 } | 44 } |
44 } | 45 } |
45 | 46 |
46 PassRefPtr<IDBValue> IDBValue::create() | 47 PassRefPtr<IDBValue> IDBValue::create() |
(...skipping 24 matching lines...) Expand all Loading... |
71 { | 72 { |
72 return m_data.get(); | 73 return m_data.get(); |
73 } | 74 } |
74 | 75 |
75 bool IDBValue::isNull() const | 76 bool IDBValue::isNull() const |
76 { | 77 { |
77 return !m_data.get(); | 78 return !m_data.get(); |
78 } | 79 } |
79 | 80 |
80 } // namespace blink | 81 } // namespace blink |
OLD | NEW |