当前位置: 首页>>代码示例>>C#>>正文


C# Mem.Del方法代码示例

本文整理汇总了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);
        }
开发者ID:BclEx,项目名称:GpuStructs,代码行数:41,代码来源:Vdbe+Mem.cs

示例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;
 }
开发者ID:BclEx,项目名称:GpuStructs,代码行数:21,代码来源:Vdbe+Mem.cs


注:本文中的Mem.Del方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。