示例#1
0
        //Shouldn't this move compressed data? YES!
        internal virtual void MoveRaw(VoidPtr address, int length)
        {
            Memory.Move(address, WorkingSource.Address, (uint)length);
            DataSource newsrc = new DataSource(address, length);

            if (_compression == CompressionType.None)
            {
                if (_children != null)
                {
                    ulong offset = VoidPtr.MinusUL(address, WorkingSource.Address);
                    foreach (ResourceNode n in _children)
                    {
                        n.OnParentMoved(offset);
                    }
                }

                _replSrc.Close();
                _replUncompSrc.Close();
                _replSrc = _replUncompSrc = newsrc;
            }
            else
            {
                _replSrc.Close();
                _replSrc = newsrc;
            }
        }
示例#2
0
        internal virtual void MoveRawUncompressed(VoidPtr address, int length)
        {
            Memory.Move(address, WorkingUncompressed.Address, (uint)length);
            DataSource newsrc = new DataSource(address, length);

            ulong offset = VoidPtr.MinusUL(address, WorkingUncompressed.Address);

            foreach (ResourceNode n in Children)
            {
                n.OnParentMovedUncompressed(offset);
            }

            _replUncompSrc.Close();
            _replUncompSrc = newsrc;
        }