- From: Adam Rice <notifications@github.com>
- Date: Thu, 01 Nov 2018 03:38:14 -0700
- To: whatwg/encoding <encoding@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Thursday, 1 November 2018 10:38:35 UTC
A rewrite of my last example, using @annevk's proposed IDL. ```javascript function convertString(buffer, input, callback) { let bufferSize = 256; let bufferStart = malloc(buffer, bufferSize); let bytesWritten = 0; let offset = 0; while (true) { const {outputOffset, inputOffset} = cachedEncoder.encodeInto( new Uint8Array( buffer, bytesStart + bytesWritten, bufferSize - bytesWritten), input, offset); offset = inputOffset; bytesWritten += outputOffset; if (offset === input.length) { callback(bufferStart, bytesWritten); free(buffer, bufferStart); return; } bufferSize *= 2; bufferStart = realloc(buffer, bufferStart, bufferSize); } } ``` I think it's nice and clear. It might be a bit clunkier than it needs to be because I kept the malloc/free/realloc semantics from my last version. -- 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-435001143
Received on Thursday, 1 November 2018 10:38:35 UTC