Exemplo n.º 1
0
            public ulong Cycles;            // Total time spend executing this instruction
#endif

            public void _memset()
            {
                Opcode = 0;
                P4Type = 0;
                P5     = 0;
                P1     = 0;
                P2     = 0;
                P3     = 0;
                P4     = new P4_t();
#if DEBUG
                Comment = null;
#endif
#if VDBE_PROFILE
                Cnt    = 0;
                Cycles = 0;
#endif
            }
Exemplo n.º 2
0
 static void FreeP4(Context ctx, P4T p4t, object p4)
 {
     Debug.Assert(ctx != null);
     if (p4 != null)
     {
         switch (p4t)
         {
             case P4T.REAL:
             case P4T.INT64:
             case P4T.DYNAMIC:
             case P4T.KEYINFO:
             case P4T.INTARRAY:
             case P4T.KEYINFO_HANDOFF:
                 {
                     C._tagfree(ctx, ref p4);
                     break;
                 }
             case P4T.MPRINTF:
                 {
                     if (ctx.BytesFreed == 0) C._free(ref p4);
                     break;
                 }
             case P4T.VDBEFUNC:
                 {
                     VdbeFunc vdbeFunc = (VdbeFunc)p4;
                     FreeEphemeralFunction(ctx, vdbeFunc);
                     if (ctx.BytesFreed == 0) Vdbe.DeleteAuxData(vdbeFunc, 0);
                     C._tagfree(ctx, ref vdbeFunc);
                     break;
                 }
             case P4T.FUNCDEF:
                 {
                     FreeEphemeralFunction(ctx, (FuncDef)p4);
                     break;
                 }
             case P4T.MEM:
                 {
                     if (ctx.BytesFreed == 0)
                         Vdbe.ValueFree(ref (Mem)p4);
                     else
                     {
                         Mem p = (Mem)p4;
                         //C._tagfree(ctx, ref p.Malloc);
                         C._tagfree(ctx, ref p);
                     }
                     break;
                 }
             case P4T.VTAB:
                 {
                     if (ctx.BytesFreed == 0) ((VTable)p4).Unlock();
                     break;
                 }
         }
     }
 }