Make callback with buffer as argument

Abierto
#58 0 comentarios 2 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
cpp, nodejs
Área
api, backend

Línea de trabajo

The relevant entry points are SetCallback and do_callback in the issue snippet; start by checking the NAN/V8 callback and Buffer APIs and reproduce the segmentation fault. Done means the callback reliably receives a Buffer, including the intended existing char pointer case, without crashing.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hello,

I'm having trouble making a callback and passing a Buffer as the argument.

Look at the code here:

v8::Local<v8::Function> callback;

void SetCallback(const Nan::FunctionCallbackInfo<v8::Value>& info) {
  callback = info[0].As<v8::Function>();
}

void do_callback() {
    int size = 100;
    v8::MaybeLocal<v8::Object> obj = Nan::NewBuffer(size);
    const unsigned argc = 1;
    args[1] = { obj.ToLocalChecked() };
    Nan::MakeCallback(Nan::GetCurrentContext()->Global(), callback, argc, args);
}

I always get "segmentation fault" and I do not know why..

To keep the code simple I am just intializing a new Buffer with size only..

However i would like to intialize the Buffer with data like so:

char* data =...
v8::MaybeLocal<v8::Object> obj = Nan::NewBuffer(data, size);

My goal is to callback a javascript function with a Buffer that is wrapped around an existing char pointer..

Please help.

Thank you!

Lenguaje dominante
C++
Estrellas
2.6k
Forks
602
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nodejs/node-addon-examples

Todos los issues de nodejs/node-addon-examples

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.