mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-24 16:05:27 +00:00
remove more nullability
This commit is contained in:
@@ -24,8 +24,6 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
#nullable disable
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
@@ -78,11 +76,12 @@ public sealed partial class ADCStream
|
||||
var toCopy = count;
|
||||
var copied = 0;
|
||||
|
||||
while (_outPosition + toCopy >= _outBuffer.Length)
|
||||
var outBuf = _outBuffer.NotNull();
|
||||
while (_outPosition + toCopy >= outBuf.Length)
|
||||
{
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
var piece = _outBuffer.Length - _outPosition;
|
||||
Array.Copy(_outBuffer, _outPosition, buffer, inPosition, piece);
|
||||
var piece = outBuf.Length - _outPosition;
|
||||
Array.Copy(outBuf, _outPosition, buffer, inPosition, piece);
|
||||
inPosition += piece;
|
||||
copied += piece;
|
||||
_position += piece;
|
||||
@@ -97,9 +96,10 @@ public sealed partial class ADCStream
|
||||
{
|
||||
return copied;
|
||||
}
|
||||
outBuf = _outBuffer;
|
||||
}
|
||||
|
||||
Array.Copy(_outBuffer, _outPosition, buffer, inPosition, toCopy);
|
||||
Array.Copy(outBuf, _outPosition, buffer, inPosition, toCopy);
|
||||
_outPosition += toCopy;
|
||||
_position += toCopy;
|
||||
copied += toCopy;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
|
||||
using System;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
@@ -22,7 +22,8 @@ public partial class Decoder : ICoder, ISetDecoderProperties
|
||||
== 0
|
||||
)
|
||||
{
|
||||
return await _lowCoder[posState].NotNull()
|
||||
return await _lowCoder[posState]
|
||||
.NotNull()
|
||||
.DecodeAsync(rangeDecoder, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
@@ -32,7 +33,8 @@ public partial class Decoder : ICoder, ISetDecoderProperties
|
||||
== 0
|
||||
)
|
||||
{
|
||||
symbol += await _midCoder[posState].NotNull()
|
||||
symbol += await _midCoder[posState]
|
||||
.NotNull()
|
||||
.DecodeAsync(rangeDecoder, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
@@ -106,7 +108,8 @@ public partial class Decoder : ICoder, ISetDecoderProperties
|
||||
byte prevByte,
|
||||
CancellationToken cancellationToken = default
|
||||
) =>
|
||||
await _coders.NotNull()[GetState(pos, prevByte)]
|
||||
await _coders
|
||||
.NotNull()[GetState(pos, prevByte)]
|
||||
.DecodeNormalAsync(rangeDecoder, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
|
||||
@@ -117,7 +120,8 @@ public partial class Decoder : ICoder, ISetDecoderProperties
|
||||
byte matchByte,
|
||||
CancellationToken cancellationToken = default
|
||||
) =>
|
||||
await _coders.NotNull()[GetState(pos, prevByte)]
|
||||
await _coders
|
||||
.NotNull()[GetState(pos, prevByte)]
|
||||
.DecodeWithMatchByteAsync(rangeDecoder, matchByte, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@@ -13,8 +13,12 @@ public partial class Decoder : ICoder, ISetDecoderProperties // ,System.IO.Strea
|
||||
{
|
||||
private BitDecoder _choice = new();
|
||||
private BitDecoder _choice2 = new();
|
||||
private readonly BitTreeDecoder?[] _lowCoder = new BitTreeDecoder?[Base.K_NUM_POS_STATES_MAX];
|
||||
private readonly BitTreeDecoder?[] _midCoder = new BitTreeDecoder?[Base.K_NUM_POS_STATES_MAX];
|
||||
private readonly BitTreeDecoder?[] _lowCoder = new BitTreeDecoder?[
|
||||
Base.K_NUM_POS_STATES_MAX
|
||||
];
|
||||
private readonly BitTreeDecoder?[] _midCoder = new BitTreeDecoder?[
|
||||
Base.K_NUM_POS_STATES_MAX
|
||||
];
|
||||
private BitTreeDecoder _highCoder = new(Base.K_NUM_HIGH_LEN_BITS);
|
||||
private uint _numPosStates;
|
||||
|
||||
@@ -151,7 +155,8 @@ public partial class Decoder : ICoder, ISetDecoderProperties // ,System.IO.Strea
|
||||
uint pos,
|
||||
byte prevByte,
|
||||
byte matchByte
|
||||
) => _coders.NotNull()[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte);
|
||||
) =>
|
||||
_coders.NotNull()[GetState(pos, prevByte)].DecodeWithMatchByte(rangeDecoder, matchByte);
|
||||
}
|
||||
|
||||
private OutWindow? _outWindow;
|
||||
|
||||
@@ -244,7 +244,8 @@ public class PpmdStream : Stream
|
||||
var size = 0;
|
||||
if (_properties.Version == PpmdVersion.I1)
|
||||
{
|
||||
size = await _model.NotNull()
|
||||
size = await _model
|
||||
.NotNull()
|
||||
.DecodeBlockAsync(_stream, buffer, offset, count, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
@@ -253,7 +254,12 @@ public class PpmdStream : Stream
|
||||
int c;
|
||||
while (
|
||||
size < count
|
||||
&& (c = await _modelH.NotNull().DecodeCharAsync(cancellationToken).ConfigureAwait(false)) >= 0
|
||||
&& (
|
||||
c = await _modelH
|
||||
.NotNull()
|
||||
.DecodeCharAsync(cancellationToken)
|
||||
.ConfigureAwait(false)
|
||||
) >= 0
|
||||
)
|
||||
{
|
||||
buffer[offset++] = (byte)c;
|
||||
@@ -266,7 +272,8 @@ public class PpmdStream : Stream
|
||||
while (
|
||||
size < count
|
||||
&& (
|
||||
c = await _modelH.NotNull()
|
||||
c = await _modelH
|
||||
.NotNull()
|
||||
.DecodeCharAsync(_decoder.NotNull(), cancellationToken)
|
||||
.ConfigureAwait(false)
|
||||
) >= 0
|
||||
@@ -301,7 +308,8 @@ public class PpmdStream : Stream
|
||||
{
|
||||
// Need to use a temporary buffer since DecodeBlockAsync works with byte[]
|
||||
var tempBuffer = new byte[count];
|
||||
size = await _model.NotNull()
|
||||
size = await _model
|
||||
.NotNull()
|
||||
.DecodeBlockAsync(_stream, tempBuffer, 0, count, cancellationToken)
|
||||
.ConfigureAwait(false);
|
||||
tempBuffer.AsMemory(0, size).CopyTo(buffer);
|
||||
@@ -311,7 +319,12 @@ public class PpmdStream : Stream
|
||||
int c;
|
||||
while (
|
||||
size < count
|
||||
&& (c = await _modelH.NotNull().DecodeCharAsync(cancellationToken).ConfigureAwait(false)) >= 0
|
||||
&& (
|
||||
c = await _modelH
|
||||
.NotNull()
|
||||
.DecodeCharAsync(cancellationToken)
|
||||
.ConfigureAwait(false)
|
||||
) >= 0
|
||||
)
|
||||
{
|
||||
buffer.Span[offset++] = (byte)c;
|
||||
@@ -324,7 +337,8 @@ public class PpmdStream : Stream
|
||||
while (
|
||||
size < count
|
||||
&& (
|
||||
c = await _modelH.NotNull()
|
||||
c = await _modelH
|
||||
.NotNull()
|
||||
.DecodeCharAsync(_decoder.NotNull(), cancellationToken)
|
||||
.ConfigureAwait(false)
|
||||
) >= 0
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#nullable disable
|
||||
|
||||
using System;
|
||||
using System.Buffers;
|
||||
using System.IO;
|
||||
@@ -47,7 +45,7 @@ internal partial class RarStream
|
||||
if (tmpCount > 0)
|
||||
{
|
||||
var toCopy = tmpCount < count ? tmpCount : count;
|
||||
Buffer.BlockCopy(tmpBuffer, tmpOffset, buffer, offset, toCopy);
|
||||
Buffer.BlockCopy(tmpBuffer.NotNull(), tmpOffset, buffer, offset, toCopy);
|
||||
tmpOffset += toCopy;
|
||||
tmpCount -= toCopy;
|
||||
offset += toCopy;
|
||||
|
||||
@@ -128,5 +128,9 @@ public sealed partial class XZStream : XZReadOnlyStream
|
||||
}
|
||||
|
||||
private void NextBlock() =>
|
||||
_currentBlock = new XZBlock(BaseStream, Header.NotNull().BlockCheckType, Header.NotNull().BlockCheckSize);
|
||||
_currentBlock = new XZBlock(
|
||||
BaseStream,
|
||||
Header.NotNull().BlockCheckType,
|
||||
Header.NotNull().BlockCheckSize
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#nullable disable
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@@ -15,7 +13,7 @@ namespace SharpCompress.Readers.Ace;
|
||||
internal class MultiVolumeAceReader : AceReader
|
||||
{
|
||||
private readonly IEnumerator<Stream> streams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
|
||||
internal MultiVolumeAceReader(IEnumerable<Stream> streams, ReaderOptions options)
|
||||
: base(options) => this.streams = streams.GetEnumerator();
|
||||
@@ -54,13 +52,13 @@ internal class MultiVolumeAceReader : AceReader
|
||||
{
|
||||
private readonly MultiVolumeAceReader reader;
|
||||
private readonly IEnumerator<Stream> nextReadableStreams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
private bool isFirst = true;
|
||||
|
||||
internal MultiVolumeStreamEnumerator(
|
||||
MultiVolumeAceReader r,
|
||||
IEnumerator<Stream> nextReadableStreams,
|
||||
Stream tempStream
|
||||
Stream? tempStream
|
||||
)
|
||||
{
|
||||
reader = r;
|
||||
@@ -72,7 +70,12 @@ internal class MultiVolumeAceReader : AceReader
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator() => this;
|
||||
|
||||
public FilePart Current { get; private set; }
|
||||
private FilePart? _current;
|
||||
public FilePart Current
|
||||
{
|
||||
get => _current.NotNull();
|
||||
private set => _current = value;
|
||||
}
|
||||
|
||||
public void Dispose() { }
|
||||
|
||||
@@ -82,7 +85,7 @@ internal class MultiVolumeAceReader : AceReader
|
||||
{
|
||||
if (isFirst)
|
||||
{
|
||||
Current = reader.Entry.Parts.First();
|
||||
_current = reader.Entry.Parts.First();
|
||||
isFirst = false; //first stream already to go
|
||||
return true;
|
||||
}
|
||||
@@ -93,7 +96,7 @@ internal class MultiVolumeAceReader : AceReader
|
||||
}
|
||||
if (tempStream != null)
|
||||
{
|
||||
reader.LoadStreamForReading(tempStream);
|
||||
reader.LoadStreamForReading(tempStream.NotNull());
|
||||
tempStream = null;
|
||||
}
|
||||
else if (!nextReadableStreams.MoveNext())
|
||||
@@ -107,7 +110,7 @@ internal class MultiVolumeAceReader : AceReader
|
||||
reader.LoadStreamForReading(nextReadableStreams.Current);
|
||||
}
|
||||
|
||||
Current = reader.Entry.Parts.First();
|
||||
_current = reader.Entry.Parts.First();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#nullable disable
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@@ -16,7 +14,7 @@ namespace SharpCompress.Readers.Arj;
|
||||
internal class MultiVolumeArjReader : ArjReader
|
||||
{
|
||||
private readonly IEnumerator<Stream> streams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
|
||||
internal MultiVolumeArjReader(IEnumerable<Stream> streams, ReaderOptions options)
|
||||
: base(options) => this.streams = streams.GetEnumerator();
|
||||
@@ -55,13 +53,13 @@ internal class MultiVolumeArjReader : ArjReader
|
||||
{
|
||||
private readonly MultiVolumeArjReader reader;
|
||||
private readonly IEnumerator<Stream> nextReadableStreams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
private bool isFirst = true;
|
||||
|
||||
internal MultiVolumeStreamEnumerator(
|
||||
MultiVolumeArjReader r,
|
||||
IEnumerator<Stream> nextReadableStreams,
|
||||
Stream tempStream
|
||||
Stream? tempStream
|
||||
)
|
||||
{
|
||||
reader = r;
|
||||
@@ -73,7 +71,12 @@ internal class MultiVolumeArjReader : ArjReader
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator() => this;
|
||||
|
||||
public FilePart Current { get; private set; }
|
||||
private FilePart? _current;
|
||||
public FilePart Current
|
||||
{
|
||||
get => _current.NotNull();
|
||||
private set => _current = value;
|
||||
}
|
||||
|
||||
public void Dispose() { }
|
||||
|
||||
@@ -94,7 +97,7 @@ internal class MultiVolumeArjReader : ArjReader
|
||||
}
|
||||
if (tempStream != null)
|
||||
{
|
||||
reader.LoadStreamForReading(tempStream);
|
||||
reader.LoadStreamForReading(tempStream.NotNull());
|
||||
tempStream = null;
|
||||
}
|
||||
else if (!nextReadableStreams.MoveNext())
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#nullable disable
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -26,13 +24,13 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
{
|
||||
private readonly MultiVolumeRarReader reader;
|
||||
private readonly IEnumerator<Stream> nextReadableStreams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
private bool isFirst = true;
|
||||
|
||||
internal MultiVolumeStreamAsyncEnumerator(
|
||||
MultiVolumeRarReader r,
|
||||
IEnumerator<Stream> nextReadableStreams,
|
||||
Stream tempStream
|
||||
Stream? tempStream
|
||||
)
|
||||
{
|
||||
reader = r;
|
||||
@@ -40,7 +38,12 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
this.tempStream = tempStream;
|
||||
}
|
||||
|
||||
public FilePart Current { get; private set; }
|
||||
private FilePart? _current;
|
||||
public FilePart Current
|
||||
{
|
||||
get => _current.NotNull();
|
||||
private set => _current = value;
|
||||
}
|
||||
|
||||
public async ValueTask<bool> MoveNextAsync()
|
||||
{
|
||||
@@ -57,7 +60,7 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
}
|
||||
if (tempStream != null)
|
||||
{
|
||||
await reader.LoadStreamForReadingAsync(tempStream);
|
||||
await reader.LoadStreamForReadingAsync(tempStream.NotNull());
|
||||
tempStream = null;
|
||||
}
|
||||
else if (!nextReadableStreams.MoveNext())
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#nullable disable
|
||||
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -14,7 +12,7 @@ namespace SharpCompress.Readers.Rar;
|
||||
internal partial class MultiVolumeRarReader : RarReader
|
||||
{
|
||||
private readonly IEnumerator<Stream> streams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
|
||||
internal MultiVolumeRarReader(IEnumerable<Stream> streams, ReaderOptions options)
|
||||
: base(options) => this.streams = streams.GetEnumerator();
|
||||
@@ -55,13 +53,13 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
{
|
||||
private readonly MultiVolumeRarReader reader;
|
||||
private readonly IEnumerator<Stream> nextReadableStreams;
|
||||
private Stream tempStream;
|
||||
private Stream? tempStream;
|
||||
private bool isFirst = true;
|
||||
|
||||
internal MultiVolumeStreamEnumerator(
|
||||
MultiVolumeRarReader r,
|
||||
IEnumerator<Stream> nextReadableStreams,
|
||||
Stream tempStream
|
||||
Stream? tempStream
|
||||
)
|
||||
{
|
||||
reader = r;
|
||||
@@ -73,7 +71,12 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator() => this;
|
||||
|
||||
public FilePart Current { get; private set; }
|
||||
private FilePart? _current;
|
||||
public FilePart Current
|
||||
{
|
||||
get => _current.NotNull();
|
||||
private set => _current = value;
|
||||
}
|
||||
|
||||
public void Dispose() { }
|
||||
|
||||
@@ -94,7 +97,7 @@ internal partial class MultiVolumeRarReader : RarReader
|
||||
}
|
||||
if (tempStream != null)
|
||||
{
|
||||
reader.LoadStreamForReading(tempStream);
|
||||
reader.LoadStreamForReading(tempStream.NotNull());
|
||||
tempStream = null;
|
||||
}
|
||||
else if (!nextReadableStreams.MoveNext())
|
||||
|
||||
Reference in New Issue
Block a user