From 02e9dc6c5cdca0dc350e27b31072b09b96fd0700 Mon Sep 17 00:00:00 2001 From: YeLike <93629620+YeLikesss@users.noreply.github.com> Date: Fri, 22 May 2026 00:26:52 +0800 Subject: [PATCH] =?UTF-8?q?ArcViewStream=2064=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GameRes/ArcStream.cs | 4 ++-- GameRes/ArcView.cs | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) 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)