< Summary

Line coverage
0%
Covered lines: 0
Uncovered lines: 14
Coverable lines: 14
Total lines: 39
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)100%110%
Dispose()100%110%
GetContentUnchecked(...)100%110%

File(s)

https://raw.githubusercontent.com/dotnet/runtime/811a7eabb75c42db53440e8ba3f60c07511cfd1f/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/MemoryBlocks/ByteArrayMemoryBlock.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Collections.Immutable;
 5using System.Diagnostics;
 6
 7namespace System.Reflection.Internal
 8{
 9    /// <summary>
 10    /// Represents a memory block backed by an array of bytes.
 11    /// </summary>
 12    internal sealed class ByteArrayMemoryBlock : AbstractMemoryBlock
 13    {
 14        private ByteArrayMemoryProvider _provider;
 15        private readonly int _start;
 16        private readonly int _size;
 17
 018        internal ByteArrayMemoryBlock(ByteArrayMemoryProvider provider, int start, int size)
 019        {
 020            _provider = provider;
 021            _size = size;
 022            _start = start;
 023        }
 24
 25        public override void Dispose()
 026        {
 027            _provider = null!;
 028        }
 29
 030        public override unsafe byte* Pointer => _provider.Pointer + _start;
 031        public override int Size => _size;
 32
 33        public override ImmutableArray<byte> GetContentUnchecked(int start, int length)
 034        {
 035            return ImmutableArray.Create(_provider.Array, _start + start, length);
 036        }
 37    }
 38}
 39