aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library.js5
-rw-r--r--src/preamble.js7
2 files changed, 10 insertions, 2 deletions
diff --git a/src/library.js b/src/library.js
index 35466c10..5a429131 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3184,7 +3184,9 @@ LibraryManager.library = {
* mmap.
*/
if (stream == -1) {
- return allocate(num, 'i8', ALLOC_NORMAL);
+ var ptr = _malloc(num);
+ _memset(ptr, 0, num);
+ return ptr;
}
var info = FS.streams[stream];
if (!info) return -1;
@@ -3195,6 +3197,7 @@ LibraryManager.library = {
munmap: function(start, num) {
_free(start);
+ return 0;
},
// TODO: Implement mremap.
diff --git a/src/preamble.js b/src/preamble.js
index 0b9288c4..5c5c21ea 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -462,9 +462,14 @@ function allocate(slab, types, allocator) {
var ret = [_malloc, Runtime.stackAlloc, Runtime.staticAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));
+ if (zeroinit) {
+ _memset(ret, 0, size);
+ return ret;
+ }
+
var i = 0, type;
while (i < size) {
- var curr = zeroinit ? 0 : slab[i];
+ var curr = slab[i];
if (typeof curr === 'function') {
curr = Runtime.getFunctionIndex(curr);