[iterateStructs] additional check for non-existent structs

This commit is contained in:
Kevin Jahns
2025-04-18 16:10:35 +02:00
parent 0ae8d6cf5a
commit 13cd563c53

View File

@@ -58,10 +58,12 @@ export class DeleteSet {
export const iterateDeletedStructs = (transaction, ds, f) => export const iterateDeletedStructs = (transaction, ds, f) =>
ds.clients.forEach((deletes, clientid) => { ds.clients.forEach((deletes, clientid) => {
const structs = /** @type {Array<GC|Item>} */ (transaction.doc.store.clients.get(clientid)) const structs = /** @type {Array<GC|Item>} */ (transaction.doc.store.clients.get(clientid))
const lastStruct = structs[structs.length - 1] if (structs != null) {
const clockState = lastStruct.id.clock + lastStruct.length const lastStruct = structs[structs.length - 1]
for (let i = 0, del = deletes[i]; i < deletes.length && del.clock < clockState; del = deletes[++i]) { const clockState = lastStruct.id.clock + lastStruct.length
iterateStructs(transaction, structs, del.clock, del.len, f) for (let i = 0, del = deletes[i]; i < deletes.length && del.clock < clockState; del = deletes[++i]) {
iterateStructs(transaction, structs, del.clock, del.len, f)
}
} }
}) })