Created
January 14, 2013 09:22
-
-
Save 72lions/4528834 to your computer and use it in GitHub Desktop.
Concatenates two ArrayBuffers
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Creates a new Uint8Array based on two different ArrayBuffers | |
* | |
* @private | |
* @param {ArrayBuffers} buffer1 The first buffer. | |
* @param {ArrayBuffers} buffer2 The second buffer. | |
* @return {ArrayBuffers} The new ArrayBuffer created out of the two. | |
*/ | |
var _appendBuffer = function(buffer1, buffer2) { | |
var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength); | |
tmp.set(new Uint8Array(buffer1), 0); | |
tmp.set(new Uint8Array(buffer2), buffer1.byteLength); | |
return tmp.buffer; | |
}; |
function concatArrayBuffers(...bufs){ const result = new Uint8Array(bufs.reduce((totalSize, buf)=>totalSize+buf.byteLength,0)); bufs.reduce((offset, buf)=>{ result.set(buf,offset) return offset+buf.byteLength },0) return result.buffer }
i meet error: Uncaught RangeError: offset is out of bounds
I am also getting error, "RangeError: offset is out of bounds".
👍
@rashmimhatre100 I am curious now :) Would you mind create a fiddle, and could you take a look at https://jsfiddle.net/fhsn0zg9/10/ ?
@fujinxiang
EDIT: realized you'd need to use this above func with Uint8Array
wrapped inputs. That is a bit misleading, but the output will be a brand new allocated ArrayBuffer. See the example code on the fiddle.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@fujinxiang Works well for me here -> https://jsfiddle.net/fhsn0zg9/10/
Best create fiddle to demo what you mean? :)