示例#1
0
        void map_grow(ulong new_cap)
        {
            new_cap = Ion.CLAMP_MIN(new_cap, 16);
            var new_map = new Map
            {
                keys = (ulong *)Ion.xcalloc((int)new_cap, sizeof(ulong)),
                vals = (ulong *)(void **)Ion.xmalloc((int)new_cap * sizeof(ulong)),
                cap  = new_cap
            };

            for (ulong i = 0; i < cap; i++)
            {
                if (keys[i] != 0)
                {
                    new_map.map_put_uint64_from_uint64(keys[i], vals[i]);
                }
            }
            Ion.xfree(keys);
            Ion.xfree(vals);
            this = new_map;
        }
示例#2
0
 public void free()
 {
     Ion.xfree(_begin);
 }
示例#3
0
 public void free()
 {
     Ion.xfree(_begin);
     this = default;
 }
示例#4
0
 internal void free()
 {
     Ion.xfree(keys);
     Ion.xfree(vals);
     this = default;
 }