aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-01-18 15:21:52 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-01-18 15:21:52 -0800
commita14d24ce9c880bf0b6e46d8fbb7b1e4dbb9a308e (patch)
treeb594cced802b445b9176c249b0a1873b08919812 /src
parente36ed341d217b86cdee5c483ce65e9a1208e794c (diff)
parent233113e07d42ed104eca9fc134e1e9894bc78305 (diff)
Merge branch 'master' into libcxx
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);