-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlib.js
More file actions
30 lines (30 loc) · 1.04 KB
/
lib.js
File metadata and controls
30 lines (30 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function mdcomp(func, data) {
const operation = Module[func];
const sp = Module.stackSave();
try {
const dataPtr = _malloc(data.length);
try {
writeArrayToMemory(data, dataPtr);
const outputPtrPtr = Module.stackAlloc(4);
const outputSizePtr = Module.stackAlloc(4);
if (operation(dataPtr, data.length, outputPtrPtr, outputSizePtr)) {
const outputPtr = HEAP32[outputPtrPtr >> 2];
try {
const outputSize = HEAP32[outputSizePtr >> 2];
const output = new Uint8Array(outputSize);
const outputBuffer = outputPtr;
for (let i=0; i < outputSize; i++) {
output[i] = HEAP8[outputBuffer++];
}
return output;
} finally {
_free(outputPtr);
}
}
} finally {
_free(dataPtr);
}
} finally {
Module.stackRestore(sp);
}
}