From bfd289352c6e57ffb7ce942913893f9060b6a478 Mon Sep 17 00:00:00 2001 From: Zef Hemel Date: Mon, 23 Aug 2010 09:22:46 +0200 Subject: [PATCH] Fix for http://yellowgrass.org/issue/persistence.js/14 (Memory Leak in trackedObjects) --- persistence.store.sql.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/persistence.store.sql.js b/persistence.store.sql.js index 735d32a..9d4a58c 100644 --- a/persistence.store.sql.js +++ b/persistence.store.sql.js @@ -655,10 +655,16 @@ persistence.store.sql.config = function(persistence, dialect) { var whereSql = "WHERE " + [ this._filter.sql("", args) ].concat(additionalWhereSqls).join(' AND '); - var sql = "DELETE FROM `" + entityName + "` " + joinSql + ' ' + whereSql; + var selectSql = "SELECT id FROM `" + entityName + "` " + joinSql + ' ' + whereSql; + var deleteSql = "DELETE FROM `" + entityName + "` " + joinSql + ' ' + whereSql; session.flush(tx, function () { - tx.executeSql(sql, args, callback); + tx.executeSql(selectSql, args, function(results) { + for(var i = 0; i < results.length; i++) { + delete session.trackedObjects[results[i].id]; + } + tx.executeSql(deleteSql, args, callback); + }); }); };