diff --git a/index.js b/index.js index 8a5dbb5..55b32e9 100644 --- a/index.js +++ b/index.js @@ -1,21 +1,27 @@ -import { dlopen, FFIType, suffix } from "bun:ffi"; +import { dlopen, FFIType } from "bun:ffi"; const path = `./libtesticolo.so`; +// Carica la libreria const { symbols } = dlopen(path, { testicolo: { - args: [FFIType.cstring, FFIType.cstring], + args: [FFIType.pointer, FFIType.pointer], // Usato pointer per i buffer returns: FFIType.void, }, }); const input = "qwertyuiopasdfghjkllzxcvbnm123456789mnbvcxzlkjhgfdsapoiuytrewq1234567890"; -const output = new ArrayBuffer(input.length + 1); -const outputView = new Uint8Array(output); -// Call the function with the input string -symbols.testicolo(input, outputView); +// Converti la stringa in un buffer (Uint8Array) +const inputBuffer = new TextEncoder().encode(input); -// Convert the output buffer to a string and log it -const result = new TextDecoder().decode(outputView); +// Crea un buffer di output della stessa dimensione +const outputBuffer = new ArrayBuffer(inputBuffer.length); + +// Passa i buffer alla funzione C +symbols.testicolo(inputBuffer, outputBuffer); + +// Decodifica l'output dal buffer +const result = new TextDecoder().decode(new Uint8Array(outputBuffer)); console.log(result); + diff --git a/libtesticolo.so b/libtesticolo.so new file mode 100755 index 0000000..6fbf6f6 Binary files /dev/null and b/libtesticolo.so differ diff --git a/meow b/meow new file mode 100755 index 0000000..3e0b13b Binary files /dev/null and b/meow differ