aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-01-07 13:02:34 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-01-07 13:02:34 -0800
commit99c4c9b5e949b5990710e27ba105920697c1146e (patch)
treee253a30adb4dbfaef8a49b03b6674fb044d01920
parentcb1a785b132482fc92ac65706119f6bf81fe6432 (diff)
fix safe heap bug with memmove
-rw-r--r--src/library.js4
-rw-r--r--src/parseTools.js1
2 files changed, 4 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js
index 0504882c..fb36c4a5 100644
--- a/src/library.js
+++ b/src/library.js
@@ -3702,7 +3702,9 @@ LibraryManager.library = {
src += num;
dest += num;
while (num--) {
- {{{ makeSetValue('--dest', '0', makeGetValue('--src', '0', 'i8'), 'i8') }}};
+ dest--;
+ src--;
+ {{{ makeCopyValues('dest', 'src', 1, 'null') }}};
}
} else {
{{{ makeCopyValues('dest', 'src', 'num', 'null') }}};
diff --git a/src/parseTools.js b/src/parseTools.js
index 75c827bc..0631e774 100644
--- a/src/parseTools.js
+++ b/src/parseTools.js
@@ -1121,6 +1121,7 @@ function makeCopyValues(dest, src, num, type, modifier) {
'}';
}
} else { // USE_TYPED_ARRAYS == 2
+ // TODO: optimize, add unrolling, etc.
var ret = '' +
'var src, dest, stop, stop4;\n' +
'src = ' + src + ';\n' +