mirror of https://github.com/swig/swig.git
30 lines
905 B
JavaScript
30 lines
905 B
JavaScript
var li_cdata_bytes_cpp = require("li_cdata_bytes_cpp");
|
|
|
|
m = li_cdata_bytes_cpp.predefStr();
|
|
s = li_cdata_bytes_cpp.cdata(m, 512);
|
|
// 's' is Uint8Array, verify its property
|
|
if (!ArrayBuffer.isView(s) || s.byteLength != 512 ||
|
|
s.length != 512 || s.BYTES_PER_ELEMENT != 1) {
|
|
throw new Error("'s' do not have proper properties");
|
|
}
|
|
// verify 's' content
|
|
for (i = 0; i < 256; i++) {
|
|
if (s[i] != i)
|
|
throw new Error("Wrong value " + s[i] + " at index " + i);
|
|
if (s[i + 256] != i)
|
|
throw new Error("Wrong value " + s[i + 256] + " at index " + (i + 256));
|
|
}
|
|
// Fill 's' with new content
|
|
for (i = 0; i < 256; i++) {
|
|
v = 256 - 1 - i;
|
|
s[i] = v;
|
|
s[i + 256] = v;
|
|
}
|
|
m2 = li_cdata_bytes_cpp.malloc(512);
|
|
// Copy 's' into a new allocated memory
|
|
li_cdata_bytes_cpp.memmove(m2, s);
|
|
if (li_cdata_bytes_cpp.verifyBytes(m2) != 0) {
|
|
throw new Error("verifyBytes fails");
|
|
}
|
|
li_cdata_bytes_cpp.free(m2);
|