mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 20:12:21 +02:00
Additional List range checks
This commit is contained in:
parent
0033a420a8
commit
94b8406fc5
1 changed files with 14 additions and 1 deletions
|
@ -518,6 +518,8 @@ namespace System.Collections
|
||||||
|
|
||||||
public void CopyTo(int index, T[] array, int arrayIndex, int count)
|
public void CopyTo(int index, T[] array, int arrayIndex, int count)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
|
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
||||||
// Delegate rest of error checking to Array.Copy.
|
// Delegate rest of error checking to Array.Copy.
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
array[i + arrayIndex] = mItems[i + index];
|
array[i + arrayIndex] = mItems[i + index];
|
||||||
|
@ -582,6 +584,7 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOf(T item, int index)
|
public int IndexOf(T item, int index)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
for (int i = index; i < mSize; i++)
|
for (int i = index; i < mSize; i++)
|
||||||
if (mItems[i] == item)
|
if (mItems[i] == item)
|
||||||
return i;
|
return i;
|
||||||
|
@ -590,6 +593,8 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOf(T item, int index, int count)
|
public int IndexOf(T item, int index, int count)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
|
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
||||||
for (int i = index; i < index + count; i++)
|
for (int i = index; i < index + count; i++)
|
||||||
if (mItems[i] == item)
|
if (mItems[i] == item)
|
||||||
return i;
|
return i;
|
||||||
|
@ -606,6 +611,7 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOfStrict(T item, int index)
|
public int IndexOfStrict(T item, int index)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
for (int i = index; i < mSize; i++)
|
for (int i = index; i < mSize; i++)
|
||||||
if (mItems[i] === item)
|
if (mItems[i] === item)
|
||||||
return i;
|
return i;
|
||||||
|
@ -614,6 +620,8 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOfStrict(T item, int index, int count)
|
public int IndexOfStrict(T item, int index, int count)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
|
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
||||||
for (int i = index; i < index + count; i++)
|
for (int i = index; i < index + count; i++)
|
||||||
if (mItems[i] === item)
|
if (mItems[i] === item)
|
||||||
return i;
|
return i;
|
||||||
|
@ -659,6 +667,7 @@ namespace System.Collections
|
||||||
|
|
||||||
public void Insert(int index, T item)
|
public void Insert(int index, T item)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index <= (uint)mSize);
|
||||||
var item; // This creates a copy - required if item is a ref to an element
|
var item; // This creates a copy - required if item is a ref to an element
|
||||||
if (mSize == AllocSize) EnsureCapacity(mSize + 1, true);
|
if (mSize == AllocSize) EnsureCapacity(mSize + 1, true);
|
||||||
if (index < mSize)
|
if (index < mSize)
|
||||||
|
@ -675,7 +684,7 @@ namespace System.Collections
|
||||||
public void Insert(int index, Span<T> items)
|
public void Insert(int index, Span<T> items)
|
||||||
{
|
{
|
||||||
//TODO: Handle case where Span is a reference to ourselves
|
//TODO: Handle case where Span is a reference to ourselves
|
||||||
|
Debug.Assert((uint)index <= (uint)mSize);
|
||||||
if (items.Length == 0)
|
if (items.Length == 0)
|
||||||
return;
|
return;
|
||||||
int addCount = items.Length;
|
int addCount = items.Length;
|
||||||
|
@ -706,6 +715,7 @@ namespace System.Collections
|
||||||
|
|
||||||
public void RemoveRange(int index, int count)
|
public void RemoveRange(int index, int count)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
||||||
if (index + count <= mSize - 1)
|
if (index + count <= mSize - 1)
|
||||||
{
|
{
|
||||||
|
@ -1135,6 +1145,7 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOf(T item, int index, StringComparison comparison)
|
public int IndexOf(T item, int index, StringComparison comparison)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
for (int i = index; i < mSize; i++)
|
for (int i = index; i < mSize; i++)
|
||||||
if (mItems[i].Equals(item, comparison))
|
if (mItems[i].Equals(item, comparison))
|
||||||
return i;
|
return i;
|
||||||
|
@ -1143,6 +1154,8 @@ namespace System.Collections
|
||||||
|
|
||||||
public int IndexOf(T item, int index, int count, StringComparison comparison)
|
public int IndexOf(T item, int index, int count, StringComparison comparison)
|
||||||
{
|
{
|
||||||
|
Debug.Assert((uint)index < (uint)mSize);
|
||||||
|
Debug.Assert((uint)index + (uint)count <= (uint)mSize);
|
||||||
for (int i = index; i < index + count; i++)
|
for (int i = index; i < index + count; i++)
|
||||||
if (mItems[i].Equals(item, comparison))
|
if (mItems[i].Equals(item, comparison))
|
||||||
return i;
|
return i;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue