Merge pull request #638 from aurimasv/to-infinity-and-beyond

Fix possible infinite loops
This commit is contained in:
Dan Stillman 2015-02-17 23:25:26 -05:00
commit a18bad6e5c
2 changed files with 7 additions and 7 deletions

View File

@ -1962,9 +1962,9 @@ Zotero.Schema = new function(){
var rows = Zotero.DB.query("SELECT * FROM itemData WHERE valueID NOT IN (SELECT valueID FROM itemDataValues)"); var rows = Zotero.DB.query("SELECT * FROM itemData WHERE valueID NOT IN (SELECT valueID FROM itemDataValues)");
if (rows) { if (rows) {
for (var j=0; j<rows.length; j++) { for (var j=0; j<rows.length; j++) {
for (var j=0; j<values.length; j++) { for (var k=0; k<values.length; k++) {
var valueID = Zotero.ID.get('itemDataValues'); var valueID = Zotero.ID.get('itemDataValues');
Zotero.DB.query("INSERT INTO itemDataValues VALUES (?,?)", [valueID, values[j]]); Zotero.DB.query("INSERT INTO itemDataValues VALUES (?,?)", [valueID, values[k]]);
Zotero.DB.query("UPDATE itemData SET valueID=? WHERE itemID=? AND fieldID=?", [valueID, rows[j]['itemID'], rows[j]['fieldID']]); Zotero.DB.query("UPDATE itemData SET valueID=? WHERE itemID=? AND fieldID=?", [valueID, rows[j]['itemID'], rows[j]['fieldID']]);
} }
} }

View File

@ -1090,15 +1090,15 @@ Zotero.Utilities = {
// document, we need to use selectNodes // document, we need to use selectNodes
if(namespaces) { if(namespaces) {
var ieNamespaces = []; var ieNamespaces = [];
for(var i in namespaces) { for(var j in namespaces) {
if(!i) continue; if(!j) continue;
ieNamespaces.push('xmlns:'+i+'="'+Zotero.Utilities.htmlSpecialChars(namespaces[i])+'"'); ieNamespaces.push('xmlns:'+j+'="'+Zotero.Utilities.htmlSpecialChars(namespaces[j])+'"');
} }
rootDoc.setProperty("SelectionNamespaces", ieNamespaces.join(" ")); rootDoc.setProperty("SelectionNamespaces", ieNamespaces.join(" "));
} }
var nodes = element.selectNodes(xpath); var nodes = element.selectNodes(xpath);
for(var i=0; i<nodes.length; i++) { for(var j=0; j<nodes.length; j++) {
results.push(nodes[i]); results.push(nodes[j]);
} }
} else { } else {
throw new Error("XPath functionality not available"); throw new Error("XPath functionality not available");