//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; } }
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; }