Skip to content

Seemingly the same array types are not compatible #16

Description

@matttrawicki

First, thanks for the cool library. But I ran into a head scratcher. Using the node-ffi example in the README.md, I found that any specific array type constructor used in the FFI declaration has to be the exact constructor used to create the array instances when invoking the FFI'd method -- or a segmentation fault 11 occurs. Said another way, two declarations of a "float array" constructor are not compatible.

If we define

const ArrayType = require('ref-array');
const FloatArray = ArrayType('float');

use that in our FFI declaration

const libadd = ffi.Library(__dirname + '/libadd', {
  add: ['float', [ FloatArray, 'int' ] ]
});

then declare the float array constructor a second time

const FloatArray2 = ArrayType('float');

and pass an array created with it to libadd.add, a seg fault occurs.

libadd.add(new FloatArray2([1.1, 2.2, 3.3], 3));

A complete simple example can be found in the "bug" branch of my fork.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions