# HG changeset patch # User Nicholas Jillings # Date 1464275202 -3600 # Node ID 5d7ad658c69950cf2941f4072bf5f007ef6e8c47 # Parent c970a531228c6bac6007f01f27a3ee5fd5177d53 Hotfix: Multiple audioElements with type="outside-reference" may be duplicated / incorrectly sent through randomisation. Fixed. diff -r c970a531228c -r 5d7ad658c699 js/core.js --- a/js/core.js Thu May 26 15:02:11 2016 +0100 +++ b/js/core.js Thu May 26 16:06:42 2016 +0100 @@ -1095,19 +1095,23 @@ { this.currentStateMap = this.stateMap[this.stateIndex]; // Find and extract the outside reference - var elements = [], ref = null; - for (var elem of this.currentStateMap.audioElements) { - if (elem.type == "outside-reference") {ref = elem;} - else {elements.push(elem);} + var elements = [], ref = []; + var elem; + while(elem = this.currentStateMap.audioElements.pop()) + { + if (elem.type == "outside-reference") { + ref.push(elem); + } + else { + elements.push(elem); + } } if (this.currentStateMap.randomiseOrder) { - this.currentStateMap.audioElements = randomiseOrder(elements); + elements = randomiseOrder(elements); } - if (ref != null) - { - this.currentStateMap.audioElements.push(ref); - } + this.currentStateMap.audioElements = elements.concat(ref); + this.currentStore = storage.testPages[this.stateIndex]; if (this.currentStateMap.preTest != null) {