Search code examples
javascriptfirefoxfirefox-addonjsctypes

js-ctypes from javascript objects


I'm working on a Firefox extension that receives binary images as ArrayBuffers of uint8_t.

In my extension I load a .dll file that has a function that I need to use on that received image. The function takes a ctype.uint8_t.ptr parameter and returns a ctype.uint8_t.ptr value.

I can't seem to find a way of converting the ArrayBuffer to this particular ctype so that I can pass it along to the function. Is there a correct way to do this?

Using ImplicitConvert() gives an Error: argument must be a nonnegative integer.


Solution

  • You should be able to do just:

    var a = new Uint8Array(1<<10);
    var ptr = new ctypes.uint8_t.ptr(a.buffer);
    

    The stuff is not documented it seems, but there are some tests that demonstrate this.