(sqlite:bind-double statement key value))
((stringp value)
(sqlite:bind-text statement key value (length value)
- (or copy-flag sqlite-TRANSIENT)))
+ (or copy-flag sqlite-STATIC)))
((and (consp value) (eq (car value) 'blob)
(stringp (cdr value)))
(let ((bval (ffi-create-fo `(c-data . ,(length (cdr value)))
(cdr value))))
(sqlite:bind-blob
statement key bval (length (cdr value))
- (or copy-flag sqlite-TRANSIENT))))
+ (or copy-flag sqlite-STATIC))))
(t (error 'sqlite-datatype-error value
:comment (concat "Attempt to insert data not one of "
"integer, float, text, or blob."))))
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, in_nargs,
rtype, ex_ffitypes) == FFI_OK)
{
+ stop_async_timeouts();
ffi_call(&cif, (void(*)(void))XEFFIO(fo_fun)->fop.fun, rvalue,
ex_values);
+ start_async_timeouts();
return 0;
}
/* Turn off async timeouts. */
-static void stop_async_timeouts(void)
+extern void stop_async_timeouts(void)
{
if (async_timer_suppress_count == 0) {
/* If timer was on, turn it off. */
/* Turn on async timeouts again. */
-static void start_async_timeouts(void)
+extern void start_async_timeouts(void)
{
assert(async_timer_suppress_count > 0);
async_timer_suppress_count--;