diff options
-rw-r--r-- | ffi.c | 6 | ||||
-rw-r--r-- | ffi.h | 1 | ||||
-rw-r--r-- | txr.1 | 16 |
3 files changed, 23 insertions, 0 deletions
@@ -4313,6 +4313,11 @@ val make_carray(val type, mem_t *data, cnum nelem, val ref) return obj; } +val carrayp(val obj) +{ + return tnil(typeof(obj) == carray_s); +} + val carray_set_length(val carray, val nelem) { struct carray *scry = carray_struct_checked(carray); @@ -4868,6 +4873,7 @@ void ffi_init(void) reg_fun(intern(lit("ffi-in"), user_package), func_n4(ffi_in)); reg_fun(intern(lit("ffi-get"), user_package), func_n2(ffi_get)); reg_fun(intern(lit("ffi-out"), user_package), func_n4(ffi_out)); + reg_fun(intern(lit("carrayp"), user_package), func_n1(carrayp)); reg_fun(intern(lit("carray-set-length"), user_package), func_n2(carray_set_length)); reg_fun(intern(lit("carray-dup"), user_package), func_n1(carray_dup)); reg_fun(intern(lit("carray-own"), user_package), func_n1(carray_own)); @@ -87,6 +87,7 @@ val ffi_in(val srcbuf, val obj, val type, val copy_p); val ffi_get(val srcbuf, val type); val ffi_out(val dstbuf, val obj, val type, val copy_p); val make_carray(val type, mem_t *data, cnum nelem, val ref); +val carrayp(val obj); val carray_set_length(val carray, val nelem); val carray_dup(val carray); val carray_own(val carray); @@ -56267,6 +56267,22 @@ or .metn list , and the extra element allocated to the foreign array is filled with zero bytes. +.coNP Function @ carrayp +.synb +.mets (carrayp << object ) +.syne +.desc +The +.code carrayp +function returns +.code t +if +.meta object +is a +.codn carray , +otherwise it returns +.codn nil . + .coNP Function @ carray-blank .synb .mets (carray-blank < length << type ) |