本文整理汇总了C#中Mem.Del方法的典型用法代码示例。如果您正苦于以下问题:C# Mem.Del方法的具体用法?C# Mem.Del怎么用?C# Mem.Del使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mem
的用法示例。
在下文中一共展示了Mem.Del方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MemGrow
public static RC MemGrow(Mem mem, int newSize, bool preserve)
{
//Debug.Assert((mem.Malloc != null && mem.Malloc == mem.Z ? 1 : 0) +
// ((mem.Flags & MEM.Dyn) && mem.Del ? 1 : 0) +
// ((mem.Flags & MEM.Ephem) ? 1 : 0) +
// ((mem.Flags & MEM.Static) ? 1 : 0) <= 1);
Debug.Assert((mem.Flags & MEM.RowSet) == 0);
// If the preserve flag is set to true, then the memory cell must already contain a valid string or blob value.
Debug.Assert(!preserve || (mem.Flags & (MEM.Blob | MEM.Str)) != 0);
if (newSize < 32) newSize = 32;
//: if (_tagallocsize(mem->Ctx, mem->Malloc) < newSize)
if (preserve) //: && mem->Z == mem->Malloc)
{
if (mem.Z == null)
mem.Z = null;
else
if (newSize < mem.Z.Length)
mem.Z = mem.Z.Substring(0, newSize);
preserve = false;
}
else
{
//: _tagfree(mem->Ctx, mem->Malloc);
mem.Z = null; //: mem->Malloc = (char*)_tagalloc(mem->Ctx, newSize);
}
//: if (mem.Z && preserve && mem.Malloc && mem.Z != mem->Malloc)
//: _memcpy(mem.Malloc, mem.Z, mem.N);
if ((mem.Flags & MEM.Dyn) != 0 && mem.Del != null)
{
Debug.Assert(mem.Del != C.DESTRUCTOR_DYNAMIC);
mem.Del(mem.Z);
}
//: mem.Z = mem->Malloc;
mem.Flags = (MEM)(mem.Z == null ? MEM.Null : mem.Flags & ~(MEM.Ephem | MEM.Static));
mem.Del = null;
return (mem.Z != null ? RC.OK : RC.NOMEM);
}
示例2: MemReleaseExternal
public static void MemReleaseExternal(Mem mem)
{
Debug.Assert(mem.Ctx == null || MutexEx.Held(mem.Ctx.Mutex));
if ((mem.Flags & MEM.Agg) != 0)
{
MemFinalize(mem, mem.u.Def);
Debug.Assert((mem.Flags & MEM.Agg) == 0);
MemRelease(mem);
}
else if ((mem.Flags & MEM.Dyn) != 0 && mem.Del != null)
{
Debug.Assert((mem.Flags & MEM.RowSet) == 0);
mem.Del(mem.Z);
mem.Del = null;
}
else if ((mem.Flags & MEM.RowSet) != 0) RowSet_Clear(mem.u.RowSet);
else if ((mem.Flags & MEM.Frame) != 0) MemSetNull(mem);
mem.N = 0;
mem.Z = null;
mem.Z_ = null;
}