Hi all, I'm trying to access data inside an ArrayBufferView. This is my 
simple javascript code:

const myAddon = require('addon location');

const myObj = myAddon.MyObj();

const data = Buffer.from('test');
myObj = doSomething(data);

After that in my c++ I have this:

void MyObj::doSomething(const v8::FunctionCallbackInfo<v8::Value> &args) {) 
{

    Local<v8::ArrayBufferView> dataBufferView = 
Local<v8::ArrayBufferView>::Cast(args[1]);

    std::cout << "Lenght on dataBufferView: " << dataBufferView->ByteLength() 
<< std::endl;

    std::cout << "Byte offset on dataBufferView: " << 
dataBufferView->ByteOffset() << std::endl;
         
     Local<ArrayBuffer> dataBuffer = dataBufferView->Buffer();

     std::cout << "Lenght dataBuffer: " << dataBuffer->ByteLength() << 
std::endl;

     ArrayBuffer::Contents dataContent = dataBuffer->Externalize();


     uint8_t* startData = static_cast<uint8_t*>(dataContent.Data());

     std::cout << "Content of " <<dataContent.ByteLength() << " from js: ";

     for(unsigned int i = 0; i < dataContent->ByteLength(); i++) {

        std::cout << *(startData + i);

     }

     std::cout << std::endl;


}


What is strange in this simple code is that dataBuffer->ByteLength() is 
8192 and if I print out the data content what I see is my full javascript 
code and some other binary data.

So.. what is the right way to access data?

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to