From 57d6a8390d3a24de4ce39b0e81367023cae77099 Mon Sep 17 00:00:00 2001 From: Mike Goelzer Date: Wed, 15 Feb 2023 09:35:01 +0000 Subject: [PATCH] change cleanupTransactions to avoid stack overflow --- src/utils/Transaction.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/utils/Transaction.js b/src/utils/Transaction.js index 1e553a90..7c64d76d 100644 --- a/src/utils/Transaction.js +++ b/src/utils/Transaction.js @@ -242,7 +242,7 @@ export const tryGc = (ds, store, gcFilter) => { * @param {number} i */ const cleanupTransactions = (transactionCleanups, i) => { - if (i < transactionCleanups.length) { + while (i < transactionCleanups.length) { const transaction = transactionCleanups[i] const doc = transaction.doc const store = doc.store @@ -363,11 +363,9 @@ const cleanupTransactions = (transactionCleanups, i) => { subdocsRemoved.forEach(subdoc => subdoc.destroy()) } - if (transactionCleanups.length <= i + 1) { + if (transactionCleanups.length <= ++i) { doc._transactionCleanups = [] doc.emit('afterAllTransactions', [doc, transactionCleanups]) - } else { - cleanupTransactions(transactionCleanups, i + 1) } } }