Я анализирую файлы, прочитанные с помощью FileReader.readAsArrayBuffer () как
var reader = new FileReader();
reader.onload = function() {
var data = new Uint8Array(reader.result);
const data_ptr = Module._malloc(data.length);
if (data_ptr == null) {
display_error("Could not allocate " + data.length + " bytes for file " + file.name);
}
else {
Module.HEAPU8.set(data, data_ptr);
var readSample = cwrap("readSample", "number", ["number", "number"]);
var ret = readSample(data_ptr, data.length);
Module._free(data_ptr);
}
}
reader.readAsArrayBuffer(file);
Было бы неплохо, если бы data_ptr
было завершено нулем, хотя проверяю, что код C не go прошлое data.length работает. Одна мысль - вызвать Module._malloc(data.length + 1)
и добавить нулевой символ внутри C. Мысли?