From 03c96380edf86bc2b4dd44000310c559afeb6d1f Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 4 Feb 2009 14:20:25 +0300 Subject: [PATCH] offline: properly close resultsets with rs.close() --- offline.js | 23 +++++++++++++++++++---- viewfeed.js | 28 ++++++++++++++++++++++++---- 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/offline.js b/offline.js index 8358bc47..dbf1170e 100644 --- a/offline.js +++ b/offline.js @@ -51,6 +51,8 @@ function view_offline(id, feed_id) { update_local_feedlist_counters(); } + rs.close(); + return false; } catch (e) { @@ -141,8 +143,6 @@ function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, off } - var rs; - var limit = 30; var toolbar_form = document.forms["main_toolbar_form"]; @@ -252,6 +252,8 @@ function viewfeed_offline(feed_id, subop, is_cat, subop_param, skip_history, off rs.next(); line_num++; } + + rs.close(); if (offset == 0) { tmp += ""; @@ -333,6 +335,8 @@ function render_offline_feedlist() { rs.next(); } + rs.close(); + tmp += ""; render_feedlist(tmp); @@ -449,6 +453,7 @@ function update_offline_data(stage) { var query = "backend.php?op=rpc&subop=download&stage=" + stage; var rs = db.execute("SELECT MAX(id), MIN(id) FROM articles"); + if (rs.isValidRow() && rs.field(0)) { var offline_dl_max_id = rs.field(0); var offline_dl_min_id = rs.field(1); @@ -457,6 +462,8 @@ function update_offline_data(stage) { query = query + "&cidb=" + offline_dl_min_id; } + rs.close(); + new Ajax.Request(query, { onComplete: function(transport) { offline_download_parse(stage, transport); @@ -530,6 +537,8 @@ function update_local_feedlist_counters() { rs.next(); } + rs.close(); + set_feedlist_counter(-4, get_local_feed_unread(-4)); set_feedlist_counter(-1, get_local_feed_unread(-1)); @@ -555,12 +564,18 @@ function get_local_feed_unread(id) { rs = db.execute("SELECT SUM(unread) FROM articles WHERE feed_id = ?", [id]); } + var a = false; + if (rs.isValidRow()) { - return rs.field(0); + a = rs.field(0); } else { - return 0; + a = 0; } + rs.close(); + + return a; + } catch (e) { exception_error("get_local_feed_unread", e); } diff --git a/viewfeed.js b/viewfeed.js index 7aaa7f77..d4967aef 100644 --- a/viewfeed.js +++ b/viewfeed.js @@ -1520,11 +1520,16 @@ function cache_find(id) { if (db) { var rs = db.execute("SELECT article FROM cache WHERE id = ?", [id]); + var a = false; if (rs.isValidRow()) { - return rs.field(0); + var a = rs.field(0); } + rs.close(); + + return a; + } else { for (var i = 0; i < article_cache.length; i++) { if (article_cache[i]["id"] == id) { @@ -1540,11 +1545,16 @@ function cache_find_param(id, param) { if (db) { var rs = db.execute("SELECT article FROM cache WHERE id = ? AND param = ?", [id, param]); + var a = false; if (rs.isValidRow()) { - return rs.field(0); + a = rs.field(0); } + rs.close(); + + return a; + } else { for (var i = 0; i < article_cache.length; i++) { if (article_cache[i]["id"] == id && article_cache[i]["param"] == param) { @@ -1560,11 +1570,16 @@ function cache_check(id) { if (db) { var rs = db.execute("SELECT COUNT(*) AS c FROM cache WHERE id = ?", [id]); + var a = false; if (rs.isValidRow()) { - return rs.field(0) != "0"; + a = rs.field(0) != "0"; } + rs.close(); + + return a; + } else { for (var i = 0; i < article_cache.length; i++) { if (article_cache[i]["id"] == id) { @@ -1580,11 +1595,16 @@ function cache_check_param(id, param) { if (db) { var rs = db.execute("SELECT COUNT(*) AS c FROM cache WHERE id = ? AND param = ?", [id, param]); + var a = false; if (rs.isValidRow()) { - return rs.field(0) != "0"; + a = rs.field(0) != "0"; } + rs.close(); + + return a; + } else { for (var i = 0; i < article_cache.length; i++) { if (article_cache[i]["id"] == id && article_cache[i]["param"] == param) { -- 2.39.5