From 12286e42465b875421c72e12a4889711881dfb48 Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Sun, 4 Dec 2022 10:27:28 -0600 Subject: [PATCH] Add length method ffi/jitfn abstract values. --- examples/jitfn/jitfn.janet | 1 + src/core/ffi.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/jitfn/jitfn.janet b/examples/jitfn/jitfn.janet index 2c668895..5f786c18 100644 --- a/examples/jitfn/jitfn.janet +++ b/examples/jitfn/jitfn.janet @@ -10,3 +10,4 @@ (def signature (ffi/signature :default :void)) (ffi/call f signature) (print "called a jitted function with FFI!") +(print "machine code: " (describe (string/slice f))) diff --git a/src/core/ffi.c b/src/core/ffi.c index 9794626a..3978154a 100644 --- a/src/core/ffi.c +++ b/src/core/ffi.c @@ -244,10 +244,17 @@ static JanetByteView janet_ffijit_getbytes(void *p, size_t s) { return bytes; } +static size_t janet_ffijit_length(void *p, size_t s) { + (void) s; + JanetFFIJittedFn *fn = p; + return fn->size; +} + const JanetAbstractType janet_type_ffijit = { .name = "ffi/jitfn", .gc = janet_ffijit_gc, - .bytes = janet_ffijit_getbytes + .bytes = janet_ffijit_getbytes, + .length = janet_ffijit_length }; typedef struct {