aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <azakai@mozilla.com>2011-02-19 10:51:07 -0800
committerAlon Zakai <azakai@mozilla.com>2011-02-19 10:51:07 -0800
commitf4a934a2adec69bc82c42342c7924fdf259f64cc (patch)
treebd4f0f31470c59d063db3f35e99e4cd04ddfa20d
parent6ccab6bbb7f9fc715901c83e10109a9a20bc4c73 (diff)
optimize String_copy
-rw-r--r--src/preamble.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/preamble.js b/src/preamble.js
index b471da92..a65ffdce 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -313,7 +313,11 @@ function String_len(ptr) {
// Copies a C-style string, terminated by a zero, from the HEAP into
// a normal JavaScript array of numbers
function String_copy(ptr, addZero) {
- return Array_copy(ptr, String_len(ptr)).concat(addZero ? [0] : []);
+ var len = String_len(ptr);
+ if (addZero) len++;
+ var ret = Array_copy(ptr, len);
+ if (addZero) ret[len-1] = 0;
+ return ret;
}
// Tools