File tree Expand file tree Collapse file tree 1 file changed +14
-3
lines changed
Expand file tree Collapse file tree 1 file changed +14
-3
lines changed Original file line number Diff line number Diff line change @@ -304,9 +304,20 @@ private int StreamNumberByOffset(long offset)
304304
305305 public void Seek ( long offset , SeekOrigin seekOrigin , IntPtr newPosition )
306306 {
307- long absolutePosition = ( seekOrigin == SeekOrigin . Current )
308- ? Position + offset
309- : offset ;
307+ long absolutePosition ;
308+ switch ( seekOrigin ) {
309+ case SeekOrigin . Begin :
310+ absolutePosition = offset ;
311+ break ;
312+ case SeekOrigin . Current :
313+ absolutePosition = Position + offset ;
314+ break ;
315+ case SeekOrigin . End :
316+ absolutePosition = Length + offset ;
317+ break ;
318+ default :
319+ throw new ArgumentOutOfRangeException ( nameof ( seekOrigin ) ) ;
320+ }
310321 CurrentStream = StreamNumberByOffset ( absolutePosition ) ;
311322 long delta = Streams [ CurrentStream ] . Seek (
312323 absolutePosition - StreamOffsets [ CurrentStream ] . Key , SeekOrigin . Begin ) ;
You can’t perform that action at this time.
0 commit comments