Beispiel #1
0
        /* }====================================================== */


        private static void AuxOpen(LinyeeState L, CharPtr name,
                                    LinyeeNativeFunction f, LinyeeNativeFunction u)
        {
            LinyeePushCFunction(L, u);
            LinyeePushCClosure(L, f, 1);
            LinyeeSetField(L, -2, name);
        }
Beispiel #2
0
        public static LinyeeNativeFunction LinyeeAtPanic(LinyeeState L, LinyeeNativeFunction panicf)
        {
            LinyeeNativeFunction old;

            LinyeeLock(L);
            old        = G(L).panic;
            G(L).panic = panicf;
            LinyeeUnlock(L);
            return(old);
        }
Beispiel #3
0
        public static int LinyeeCPCall(LinyeeState L, LinyeeNativeFunction func, object ud)
        {
            CCallS c = new CCallS();
            int    status;

            LinyeeLock(L);
            c.func = func;
            c.ud   = ud;
            status = LinyeeDPCall(L, FunctionCCall, c, SaveStack(L, L.top), 0);
            LinyeeUnlock(L);
            return(status);
        }
Beispiel #4
0
        public static void LinyeePushCClosure(LinyeeState L, LinyeeNativeFunction fn, int n)
        {
            Closure cl;

            LinyeeLock(L);
            LinyeeCCheckGC(L);
            CheckNElements(L, n);
            cl     = LinyeeFNewCclosure(L, n, GetCurrentEnv(L));
            cl.c.f = fn;
            L.top -= n;
            while (n-- != 0)
            {
                SetObj2N(L, cl.c.upvalue[n], L.top + n);
            }
            SetCLValue(L, L.top, cl);
            LinyeeAssert(IsWhite(obj2gco(cl)));
            IncrementTop(L);
            LinyeeUnlock(L);
        }
Beispiel #5
0
 public LinyeeLReg(CharPtr name, LinyeeNativeFunction func)
 {
     this.name = name;
     this.func = func;
 }
Beispiel #6
0
 private static void NewFEnv(LinyeeState L, LinyeeNativeFunction cls)
 {
     LinyeeCreateTable(L, 0, 1);
     LinyeePushCFunction(L, cls);
     LinyeeSetField(L, -2, "__close");
 }
Beispiel #7
0
 public static void LinyeePushCFunction(LinyeeState L, LinyeeNativeFunction f)
 {
     LinyeePushCClosure(L, f, 0);
 }
Beispiel #8
0
 public static void LinyeeRegister(LinyeeState L, CharPtr n, LinyeeNativeFunction f)
 {
     LinyeePushCFunction(L, f);
     LinyeeSetGlobal(L, n);
 }
Beispiel #9
0
 public static void LinyeePushStdCallCFunction(LinyeeState luaState, LinyeeNativeFunction function)
 {
     LinyeePushCFunction(luaState, function);
 }