| Index: third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp
|
| diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp
|
| index 5e80fe6adf743e87614bc8e0cd5ceeacfb82033a..f0a8ba971751e9caa7e9f391580ee6a94a56b937 100644
|
| --- a/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp
|
| +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObserverChanges.cpp
|
| @@ -31,28 +31,40 @@ ScriptValue IDBObserverChanges::records(ScriptState* scriptState) {
|
| IDBObserverChanges* IDBObserverChanges::create(
|
| IDBDatabase* database,
|
| const WebVector<WebIDBObservation>& observations,
|
| - const WebVector<int32_t>& observationIndex) {
|
| - return new IDBObserverChanges(database, observations, observationIndex);
|
| + const WebVector<int32_t>& observationIndices) {
|
| + return new IDBObserverChanges(database, nullptr, observations,
|
| + observationIndices);
|
| +}
|
| +
|
| +IDBObserverChanges* IDBObserverChanges::create(
|
| + IDBDatabase* database,
|
| + IDBTransaction* transaction,
|
| + const WebVector<WebIDBObservation>& observations,
|
| + const WebVector<int32_t>& observationIndices) {
|
| + return new IDBObserverChanges(database, transaction, observations,
|
| + observationIndices);
|
| }
|
|
|
| IDBObserverChanges::IDBObserverChanges(
|
| IDBDatabase* database,
|
| + IDBTransaction* transaction,
|
| const WebVector<WebIDBObservation>& observations,
|
| - const WebVector<int32_t>& observationIndex)
|
| - : m_database(database) {
|
| - extractChanges(observations, observationIndex);
|
| + const WebVector<int32_t>& observationIndices)
|
| + : m_database(database), m_transaction(transaction) {
|
| + extractChanges(observations, observationIndices);
|
| }
|
|
|
| void IDBObserverChanges::extractChanges(
|
| const WebVector<WebIDBObservation>& observations,
|
| - const WebVector<int32_t>& observationIndex) {
|
| + const WebVector<int32_t>& observationIndices) {
|
| // TODO(dmurph): Avoid getting and setting repeated times.
|
| - for (const auto& idx : observationIndex)
|
| + for (const auto& idx : observationIndices) {
|
| m_records
|
| .add(observations[idx].objectStoreId,
|
| HeapVector<Member<IDBObservation>>())
|
| .storedValue->value.push_back(
|
| IDBObservation::create(observations[idx]));
|
| + }
|
| }
|
|
|
| DEFINE_TRACE(IDBObserverChanges) {
|
|
|