Exemplo n.º 1
0
        public static unsafe AtkResNode **CopyNodeList(AtkResNode **originalList, ushort originalSize, ushort newSize = 0)
        {
            if (newSize <= originalSize)
            {
                newSize = (ushort)(originalSize + 1);
            }
            var oldListPtr = new IntPtr(originalList);
            var newListPtr = Common.Alloc((ulong)((newSize + 1) * 8));
            var clone      = new IntPtr[originalSize];

            Marshal.Copy(oldListPtr, clone, 0, originalSize);
            Marshal.Copy(clone, 0, newListPtr, originalSize);
            return((AtkResNode **)(newListPtr));
        }
Exemplo n.º 2
0
        private static AtkResNode **ExpandNodeList(AtkResNode **originalList, ushort originalSize, ushort newSize = 0)
        {
            if (newSize <= originalSize)
            {
                newSize = (ushort)(originalSize + 1);
            }
            var oldListPtr = new IntPtr(originalList);
            var newListPtr = Alloc((ulong)((newSize + 1) * 8));
            var clone      = new IntPtr[originalSize];

            Marshal.Copy(oldListPtr, clone, 0, originalSize);
            Marshal.Copy(clone, 0, newListPtr, originalSize);
            return((AtkResNode **)(newListPtr));
        }