diff options
-rw-r--r-- | src/library.js | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js index c9a6ce38..1d3be1ee 100644 --- a/src/library.js +++ b/src/library.js @@ -3668,7 +3668,14 @@ LibraryManager.library = { }, strdup: function(ptr) { - return allocate(String_copy(ptr, true), 'i8', ALLOC_NORMAL); + var len = String_len(ptr); + var end = ptr + len; + var newStr = _malloc(len + 1); + for (var src = ptr, dst = newStr; src < end; src++, dst++) { + {{{ makeSetValue('dst', 0, 'src', 'i8') }}} + } + {{{ makeSetValue('dst', 0, 0, 'i8') }}} + return newStr; }, strpbrk: function(ptr1, ptr2) { |