Commit 2b20737b authored by jgould's avatar jgould

string memory leaks

parent 962d2c09
This source diff could not be displayed because it is too large. You can view the blob instead.
morpheus.BufferedReader = function(buffer) { morpheus.BufferedReader = function (buffer) {
this.buffer = buffer; this.buffer = buffer;
this.bufferLength = buffer.length; this.bufferLength = buffer.length;
this.index = 0; this.index = 0;
if (typeof TextDecoder !== 'undefined') { if (typeof TextDecoder !== 'undefined') {
var textDecoder = new TextDecoder(); var textDecoder = new TextDecoder();
this.decoder = function(buf, start, end) { this.decoder = function (buf, start, end) {
return textDecoder.decode(buf.subarray(start, end)); return textDecoder.decode(buf.subarray(start, end));
}; };
} else { } else {
this.decoder = function(buf, start, end) { this.decoder = function (buf, start, end) {
// TODO convert in chunks // TODO convert in chunks
var s = ''; var s = [];
for (var i = start; i < end; i++) { for (var i = start; i < end; i++) {
s += String.fromCharCode(buffer[i]); s.push(String.fromCharCode(buffer[i]));
} }
return s; return s.join('');
}; };
} }
}; };
morpheus.BufferedReader.prototype = { morpheus.BufferedReader.prototype = {
readLine : function() { readLine: function () {
var index = this.index; var index = this.index;
var bufferLength = this.bufferLength; var bufferLength = this.bufferLength;
if (index >= bufferLength) { if (index >= bufferLength) {
...@@ -53,13 +53,13 @@ morpheus.BufferedReader.prototype = { ...@@ -53,13 +53,13 @@ morpheus.BufferedReader.prototype = {
} }
}; };
morpheus.BufferedReader.getArrayBuffer = function(fileOrUrl, callback) { morpheus.BufferedReader.getArrayBuffer = function (fileOrUrl, callback) {
var isString = typeof fileOrUrl === 'string' || fileOrUrl instanceof String; var isString = typeof fileOrUrl === 'string' || fileOrUrl instanceof String;
if (isString) { // URL if (isString) { // URL
var oReq = new XMLHttpRequest(); var oReq = new XMLHttpRequest();
oReq.open('GET', fileOrUrl, true); oReq.open('GET', fileOrUrl, true);
oReq.responseType = 'arraybuffer'; oReq.responseType = 'arraybuffer';
oReq.onload = function(oEvent) { oReq.onload = function (oEvent) {
callback(null, oReq.response); callback(null, oReq.response);
}; };
...@@ -72,10 +72,10 @@ morpheus.BufferedReader.getArrayBuffer = function(fileOrUrl, callback) { ...@@ -72,10 +72,10 @@ morpheus.BufferedReader.getArrayBuffer = function(fileOrUrl, callback) {
// } // }
// }; // };
oReq.onerror = function(oEvent) { oReq.onerror = function (oEvent) {
callback(oEvent); callback(oEvent);
}; };
oReq.onreadystatechange = function(oEvent) { oReq.onreadystatechange = function (oEvent) {
if (oReq.readyState === 4 && oReq.status !== 200) { if (oReq.readyState === 4 && oReq.status !== 200) {
oReq.onload = null; oReq.onload = null;
oReq.onerror = null; oReq.onerror = null;
...@@ -90,10 +90,10 @@ morpheus.BufferedReader.getArrayBuffer = function(fileOrUrl, callback) { ...@@ -90,10 +90,10 @@ morpheus.BufferedReader.getArrayBuffer = function(fileOrUrl, callback) {
oReq.send(null); oReq.send(null);
} else { } else {
var reader = new FileReader(); var reader = new FileReader();
reader.onload = function(event) { reader.onload = function (event) {
callback(null, event.target.result); callback(null, event.target.result);
}; };
reader.onerror = function(event) { reader.onerror = function (event) {
callback(event); callback(event);
}; };
reader.readAsArrayBuffer(fileOrUrl); reader.readAsArrayBuffer(fileOrUrl);
......
...@@ -76,6 +76,9 @@ morpheus.GctReader.prototype = { ...@@ -76,6 +76,9 @@ morpheus.GctReader.prototype = {
dataColumnStart = numRowAnnotations + 1; dataColumnStart = numRowAnnotations + 1;
} else if (lineNumber === 2) { } else if (lineNumber === 2) {
columnNamesArray = result.data[0]; columnNamesArray = result.data[0];
for (var i = 0; i < columnNamesArray.length; i++) {
columnNamesArray[i] = morpheus.Util.copyString(columnNamesArray[i]);
}
if (ncols === -1) { if (ncols === -1) {
ncols = columnNamesArray.length - numRowAnnotations - 1; ncols = columnNamesArray.length - numRowAnnotations - 1;
} }
...@@ -114,7 +117,7 @@ morpheus.GctReader.prototype = { ...@@ -114,7 +117,7 @@ morpheus.GctReader.prototype = {
} else { // lines >=3 } else { // lines >=3
var tokens = result.data[0]; var tokens = result.data[0];
if (lineNumber < dataMatrixLineNumberStart) { if (lineNumber < dataMatrixLineNumberStart) {
var metadataName = tokens[0]; var metadataName = morpheus.Util.copyString(tokens[0]);
var v = []; var v = [];
columnMetadata.push(v); columnMetadata.push(v);
columnMetadataNames.push(metadataName); columnMetadataNames.push(metadataName);
......
...@@ -143,11 +143,13 @@ morpheus.Util.getWindowSearchObject = function () { ...@@ -143,11 +143,13 @@ morpheus.Util.getWindowSearchObject = function () {
}; };
morpheus.Util.copyString = function (s) { morpheus.Util.copyString = function (s) {
var copy = ''; //return (' ' + s).slice(1);
// return (' ' + s).substr(1);
var copy = [];
for (var i = 0, end = s.length; i < end; i++) { for (var i = 0, end = s.length; i < end; i++) {
copy += s[i]; copy.push(s[i]);
} }
return copy; return copy.join('');
}; };
morpheus.Util.getQueryParams = function (s) { morpheus.Util.getQueryParams = function (s) {
var params = {}; var params = {};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment