diff --git a/GameRes/ArcStream.cs b/GameRes/ArcStream.cs index 2e46608e..aade8d43 100644 --- a/GameRes/ArcStream.cs +++ b/GameRes/ArcStream.cs @@ -90,9 +90,9 @@ namespace GameRes Name = name ?? ""; } - public ArcViewStream (ArcView file, long offset, uint size, string name = null) + public ArcViewStream (ArcView file, long offset, long size, string name = null) { - m_view = new ArcView.Frame (file, offset, Math.Min (size, MaxFrameSize)); + m_view = new ArcView.Frame (file, offset, (uint)Math.Min (size, MaxFrameSize)); m_start = offset; m_size = size; m_position = 0; diff --git a/GameRes/ArcView.cs b/GameRes/ArcView.cs index 4cd3a533..74ed9500 100644 --- a/GameRes/ArcView.cs +++ b/GameRes/ArcView.cs @@ -214,9 +214,11 @@ namespace GameRes public ArcViewStream CreateStream (long offset) { var size = this.MaxOffset - offset; - if (size > uint.MaxValue) - throw new ArgumentOutOfRangeException ("Too large memory mapped stream"); - return new ArcViewStream (this, offset, (uint)size); + if (size < 0) + { + throw new ArgumentOutOfRangeException(nameof(offset), "Greater than archive size"); + } + return new ArcViewStream (this, offset, size); } public ArcViewStream CreateStream (long offset, uint size, string name = null)