示例#1
0
lispobj
funcall0(lispobj function)
{
    lispobj *args = NULL;

    return call_into_lisp(function, args, 0);
}
示例#2
0
lispobj
funcall1(lispobj function, lispobj arg0)
{
    lispobj args[1];

    args[0] = arg0;
    return call_into_lisp(function, args, 1);
}
示例#3
0
lispobj
funcall2(lispobj function, lispobj arg0, lispobj arg1)
{
    lispobj args[2];

    args[0] = arg0;
    args[1] = arg1;
    return call_into_lisp(function, args, 2);
}
示例#4
0
lispobj
funcall3(lispobj function, lispobj arg0, lispobj arg1, lispobj arg2)
{
    lispobj args[3];

    args[0] = arg0;
    args[1] = arg1;
    args[2] = arg2;
    return call_into_lisp(function, args, 3);
}
示例#5
0
文件: funcall.c 项目: B-Rich/sbcl
static inline lispobj
safe_call_into_lisp(lispobj fun, lispobj *args, int nargs)
{
#ifndef LISP_FEATURE_SB_SAFEPOINT
    /* SIG_STOP_FOR_GC needs to be enabled before we can call lisp:
     * otherwise two threads racing here may deadlock: the other will
     * wait on the GC lock, and the other cannot stop the first
     * one... */
    check_gc_signals_unblocked_or_lose(0);
#endif
    return call_into_lisp(fun, args, nargs);
}