From f1a84569653251c9bf392339edb13be4975d93e3 Mon Sep 17 00:00:00 2001 From: Arthur Maciel Date: Sun, 7 Feb 2021 15:05:55 -0300 Subject: [PATCH] Added procs to query opaques --- libs/cyclone/foreign.sld | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/cyclone/foreign.sld b/libs/cyclone/foreign.sld index 896570e5..edc1c669 100644 --- a/libs/cyclone/foreign.sld +++ b/libs/cyclone/foreign.sld @@ -12,6 +12,9 @@ (scheme eval) (scheme cyclone util)) (export + opaque? + opaque-null? + c-code c-value c-define @@ -19,6 +22,15 @@ scm->c c-define-type) (begin + (define-c opaque? + "(void *data, int argc, closure _, object k, object p)" + "return_closcall1(data, k, Cyc_is_opaque(p));") + + (define-c opaque-null? + "(void *data, int argc, closure _, object k, object p)" + "Cyc_check_opaque(data, p); + return_closcall1(data, k, make_boolean(opaque_ptr(p) == NULL));") + ;; (c-define-type name type (pack (unpack))) (define-syntax c-define-type (er-macro-transformer