IDBError MemoryIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, uint64_t objectStoreIdentifier) { LOG(IndexedDB, "MemoryIDBBackingStore::deleteObjectStore"); ASSERT(m_databaseInfo); if (!m_databaseInfo->infoForExistingObjectStore(objectStoreIdentifier)) return { IDBDatabaseException::ConstraintError }; auto transaction = m_transactions.get(transactionIdentifier); ASSERT(transaction); ASSERT(transaction->isVersionChange()); auto objectStore = takeObjectStoreByIdentifier(objectStoreIdentifier); ASSERT(objectStore); if (!objectStore) return { IDBDatabaseException::ConstraintError }; m_databaseInfo->deleteObjectStore(objectStore->info().name()); transaction->objectStoreDeleted(*objectStore); return { }; }
IDBError MemoryIDBBackingStore::deleteObjectStore(const IDBResourceIdentifier& transactionIdentifier, const String& objectStoreName) { LOG(IndexedDB, "MemoryIDBBackingStore::deleteObjectStore"); ASSERT(m_databaseInfo); if (!m_databaseInfo->hasObjectStore(objectStoreName)) return IDBError(IDBDatabaseException::ConstraintError); auto transaction = m_transactions.get(transactionIdentifier); ASSERT(transaction); ASSERT(transaction->isVersionChange()); auto objectStore = takeObjectStoreByName(objectStoreName); ASSERT(objectStore); if (!objectStore) return IDBError(IDBDatabaseException::ConstraintError); m_databaseInfo->deleteObjectStore(objectStoreName); transaction->objectStoreDeleted(WTFMove(objectStore)); return IDBError(); }