javascript - 将数据复制到 v8::ArrayBuffer

标签 javascript c++ qt v8 arraybuffer

我正在使用 v8 在 C++ 中编写 Javascript 解释器。 我需要将一个 char 缓冲区传递到 ArrayBuffer 中,以便它被垃圾收集。这是我的代码:

QByteArray data_buffer(file.readAll().data(), file.size());

v8::Handle<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(args.GetIsolate(), data_buffer.size());
//insert code to copy data from data_buffer to ab
args.GetReturnValue().Set(ab);

如果我使用文档中的构造函数并在其中传递指向数据的指针,我将不得不自己处理内存,我不希望这样。

我想避免分配内存,让 v8 自行管理内存。 找不到使用 Set() 或任何其他函数的方法。

关于如何将数据复制到数组缓冲区有什么建议吗?或者我如何使用 2 参数构造函数让 v8 处理我的数据使用的内存?

此处的文档:http://bespin.cz/~ondras/html/classv8_1_1ArrayBuffer.html谢谢。

最佳答案

找到一个方法:

memcpy(ab->GetContents().Data(), data_buffer.data(), data_buffer.size());

现在我不需要分配内存,一切都被垃圾收集了。

关于javascript - 将数据复制到 v8::ArrayBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796251/

相关文章:

javascript - 使用 Three.js 在对象上绘画

C++指针链表

c++ - 在使用 C++ 和 qt 的实时音频服务器中,在哪里将 Wav header 添加到数据中?

javascript - 从wysihtml5编辑器获取当前选定的文本

javascript - 使用ajax和json保存数据

C++:类内的静态数组大小未知

c++ - C++/Qt项目的跨平台编译

c++ - 信号与槽的连接(关于qlistview)——Qt

javascript - 如何获取连接访问者到我网站的 IP 地址/位置,并向我显示他们的地址?

c++ - 75 :15: fatal error: stdlib. h : No such file or directory #include_next <stdlib. h>