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 }
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; } } } }