diff --git a/toolkit/components/passwordmgr/src/storage-mozStorage.js b/toolkit/components/passwordmgr/src/storage-mozStorage.js index 9753a5e990c..71fa129d160 100644 --- a/toolkit/components/passwordmgr/src/storage-mozStorage.js +++ b/toolkit/components/passwordmgr/src/storage-mozStorage.js @@ -947,7 +947,12 @@ LoginManagerStorage_mozStorage.prototype = { // Memoize the statements if (!this._dbStmts[query]) { this.log("Creating new statement for query: " + query); - this._dbStmts[query] = this._dbConnection.createStatement(query); + let stmt = this._dbConnection.createStatement(query); + + let wrappedStmt = Cc["@mozilla.org/storage/statement-wrapper;1"]. + createInstance(Ci.mozIStorageStatementWrapper); + wrappedStmt.initialize(stmt); + this._dbStmts[query] = wrappedStmt; } // Replace parameters, must be done 1 at a time if (params) @@ -1070,7 +1075,7 @@ LoginManagerStorage_mozStorage.prototype = { // Finalize all statements to free memory, avoid errors later for (let i = 0; i < this._dbStmts.length; i++) - this._dbStmts[i].finalize(); + this._dbStmts[i].statement.finalize(); this._dbStmts = []; // Close the connection, ignore 'already closed' error