mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-12 13:24:09 +02:00
Merge pull request #1363 from disarray2077/patch-5
Add bounds checking to [Pop]Back/[Pop]Front
This commit is contained in:
commit
849a305887
1 changed files with 34 additions and 4 deletions
|
@ -283,18 +283,32 @@ namespace System.Collections
|
||||||
|
|
||||||
public ref T Front
|
public ref T Front
|
||||||
{
|
{
|
||||||
|
[Checked]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
Runtime.Assert(mSize != 0);
|
||||||
|
return ref mItems[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
[Unchecked, Inline]
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
Debug.Assert(mSize != 0);
|
|
||||||
return ref mItems[0];
|
return ref mItems[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ref T Back
|
public ref T Back
|
||||||
{
|
{
|
||||||
|
[Checked]
|
||||||
|
get
|
||||||
|
{
|
||||||
|
Runtime.Assert(mSize != 0);
|
||||||
|
return ref mItems[mSize - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
[Unchecked, Inline]
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
Debug.Assert(mSize != 0);
|
|
||||||
return ref mItems[mSize - 1];
|
return ref mItems[mSize - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -723,13 +737,29 @@ namespace System.Collections
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Checked]
|
||||||
public T PopBack()
|
public T PopBack()
|
||||||
{
|
{
|
||||||
T backVal = mItems[mSize - 1];
|
Runtime.Assert(mSize != 0);
|
||||||
mSize--;
|
return mItems[--mSize];
|
||||||
|
}
|
||||||
|
|
||||||
|
[Unchecked]
|
||||||
|
public T PopBack()
|
||||||
|
{
|
||||||
|
return mItems[--mSize];
|
||||||
|
}
|
||||||
|
|
||||||
|
[Checked]
|
||||||
|
public T PopFront()
|
||||||
|
{
|
||||||
|
Runtime.Assert(mSize != 0);
|
||||||
|
T backVal = mItems[0];
|
||||||
|
RemoveAt(0);
|
||||||
return backVal;
|
return backVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Unchecked]
|
||||||
public T PopFront()
|
public T PopFront()
|
||||||
{
|
{
|
||||||
T backVal = mItems[0];
|
T backVal = mItems[0];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue