- From: Anne van Kesteren <notifications@github.com>
- Date: Fri, 14 Dec 2018 02:00:54 -0800
- To: whatwg/encoding <encoding@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 14 December 2018 10:01:20 UTC
@ricea I tried to rewrite your example for inclusion in the standard:
```js
function convertString(buffer, input, callback) {
let bufferSize = 256;
let bufferStart = malloc(buffer, bufferSize);
let bytesWritten = 0;
let offset = 0;
while (true) {
const {read, written} = cachedEncoder.encodeInto(input.substring(offset), new Uint8Array(buffer, bytesStart + bytesWritten, bufferSize - bytesWritten));
offset += read;
bytesWritten += written;
if (offset === input.length) {
callback(bufferStart, bytesWritten);
free(buffer, bufferStart);
return;
}
bufferSize *= 2;
bufferStart = realloc(buffer, bufferStart, bufferSize);
}
}
```
For the length argument to Uint8Array, shouldn't bufferStart also be subtracted? (I also changed offset = read to offset += read. Better names welcome.)
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/encoding/issues/69#issuecomment-447275930
Received on Friday, 14 December 2018 10:01:20 UTC