Modern IDB: Refactor memory objectstore/transaction integration The only time object stores should ever notify transactions about changed records is when they are deleted. This works because even puts/adds are defined as undergoing a delete first. This also works such that when transactions abort, records are put back in to the database as normal. This is important because as we support indexes (https://bugs.webkit.org/show_bug.cgi?id=150939), indexes will rely on OS.delete removing a record and OS.put adding a record.
Created attachment 265033 [details] Patch v1
Comment on attachment 265033 [details] Patch v1 View in context: https://bugs.webkit.org/attachment.cgi?id=265033&action=review > Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:168 > + ASSERT(!m_orderedKeys || m_orderedKeys->find(keyData) == m_orderedKeys->end()); Why not use contains here instead of find==end?
(In reply to comment #2) > Comment on attachment 265033 [details] > Patch v1 > > View in context: > https://bugs.webkit.org/attachment.cgi?id=265033&action=review > > > Source/WebCore/Modules/indexeddb/server/MemoryObjectStore.cpp:168 > > + ASSERT(!m_orderedKeys || m_orderedKeys->find(keyData) == m_orderedKeys->end()); > > Why not use contains here instead of find==end? m_orderedKeys is a std::set, which apparently doesn't have ::contains() - Only find. :(
Comment on attachment 265033 [details] Patch v1 Clearing flags on attachment: 265033 Committed r192163: <http://trac.webkit.org/changeset/192163>
All reviewed patches have been landed. Closing bug.