Core/Refactor: Part 2

This commit is contained in:
hondacrx
2018-05-07 22:07:35 -04:00
parent 216db1c23a
commit 9b40067017
93 changed files with 321 additions and 388 deletions
+61 -61
View File
@@ -29,13 +29,13 @@ namespace System.Collections
}
Contract.EndContractBlock();
m_array = new uint[GetArrayLength(length, BitsPerInt32)];
m_length = length;
_mArray = new uint[GetArrayLength(length, BitsPerInt32)];
_mLength = length;
uint fillValue = defaultValue ? 0xffffffff : 0;
for (int i = 0; i < m_array.Length; i++)
for (int i = 0; i < _mArray.Length; i++)
{
m_array[i] = fillValue;
_mArray[i] = fillValue;
}
_version = 0;
@@ -54,10 +54,10 @@ namespace System.Collections
throw new ArgumentException();
}
m_array = new uint[values.Length];
m_length = values.Length * BitsPerInt32;
_mArray = new uint[values.Length];
_mLength = values.Length * BitsPerInt32;
Array.Copy(values, m_array, values.Length);
Array.Copy(values, _mArray, values.Length);
_version = 0;
}
@@ -70,11 +70,11 @@ namespace System.Collections
}
Contract.EndContractBlock();
int arrayLength = GetArrayLength(bits.m_length, BitsPerInt32);
m_array = new uint[arrayLength];
m_length = bits.m_length;
int arrayLength = GetArrayLength(bits._mLength, BitsPerInt32);
_mArray = new uint[arrayLength];
_mLength = bits._mLength;
Array.Copy(bits.m_array, m_array, arrayLength);
Array.Copy(bits._mArray, _mArray, arrayLength);
_version = bits._version;
}
@@ -99,7 +99,7 @@ namespace System.Collections
}
Contract.EndContractBlock();
return (Convert.ToInt64(m_array[index / 32]) & (1 << (index % 32))) != 0;
return (Convert.ToInt64(_mArray[index / 32]) & (1 << (index % 32))) != 0;
}
public void Set(int index, bool value)
@@ -112,11 +112,11 @@ namespace System.Collections
if (value)
{
m_array[index / 32] |= (1u << (index % 32));
_mArray[index / 32] |= (1u << (index % 32));
}
else
{
m_array[index / 32] &= ~(1u << (index % 32));
_mArray[index / 32] &= ~(1u << (index % 32));
}
_version++;
@@ -125,10 +125,10 @@ namespace System.Collections
public void SetAll(bool value)
{
uint fillValue = value ? 0xffffffff : 0u;
int ints = GetArrayLength(m_length, BitsPerInt32);
int ints = GetArrayLength(_mLength, BitsPerInt32);
for (int i = 0; i < ints; i++)
{
m_array[i] = fillValue;
_mArray[i] = fillValue;
}
_version++;
@@ -142,10 +142,10 @@ namespace System.Collections
throw new ArgumentException();
Contract.EndContractBlock();
int ints = GetArrayLength(m_length, BitsPerInt32);
int ints = GetArrayLength(_mLength, BitsPerInt32);
for (int i = 0; i < ints; i++)
{
m_array[i] &= value.m_array[i];
_mArray[i] &= value._mArray[i];
}
_version++;
@@ -160,10 +160,10 @@ namespace System.Collections
throw new ArgumentException();
Contract.EndContractBlock();
int ints = GetArrayLength(m_length, BitsPerInt32);
int ints = GetArrayLength(_mLength, BitsPerInt32);
for (int i = 0; i < ints; i++)
{
m_array[i] |= value.m_array[i];
_mArray[i] |= value._mArray[i];
}
_version++;
@@ -178,10 +178,10 @@ namespace System.Collections
throw new ArgumentException();
Contract.EndContractBlock();
int ints = GetArrayLength(m_length, BitsPerInt32);
int ints = GetArrayLength(_mLength, BitsPerInt32);
for (int i = 0; i < ints; i++)
{
m_array[i] ^= value.m_array[i];
_mArray[i] ^= value._mArray[i];
}
_version++;
@@ -190,10 +190,10 @@ namespace System.Collections
public BitSet Not()
{
int ints = GetArrayLength(m_length, BitsPerInt32);
int ints = GetArrayLength(_mLength, BitsPerInt32);
for (int i = 0; i < ints; i++)
{
m_array[i] = ~m_array[i];
_mArray[i] = ~_mArray[i];
}
_version++;
@@ -205,7 +205,7 @@ namespace System.Collections
get
{
Contract.Ensures(Contract.Result<int>() >= 0);
return m_length;
return _mLength;
}
set
{
@@ -216,29 +216,29 @@ namespace System.Collections
Contract.EndContractBlock();
int newints = GetArrayLength(value, BitsPerInt32);
if (newints > m_array.Length || newints + _ShrinkThreshold < m_array.Length)
if (newints > _mArray.Length || newints + ShrinkThreshold < _mArray.Length)
{
// grow or shrink (if wasting more than _ShrinkThreshold ints)
uint[] newarray = new uint[newints];
Array.Copy(m_array, newarray, newints > m_array.Length ? m_array.Length : newints);
m_array = newarray;
Array.Copy(_mArray, newarray, newints > _mArray.Length ? _mArray.Length : newints);
_mArray = newarray;
}
if (value > m_length)
if (value > _mLength)
{
// clear high bit values in the last int
int last = GetArrayLength(m_length, BitsPerInt32) - 1;
int bits = m_length % 32;
int last = GetArrayLength(_mLength, BitsPerInt32) - 1;
int bits = _mLength % 32;
if (bits > 0)
{
m_array[last] &= (1u << bits) - 1;
_mArray[last] &= (1u << bits) - 1;
}
// clear remaining int values
Array.Clear(m_array, last + 1, newints - last - 1);
Array.Clear(_mArray, last + 1, newints - last - 1);
}
m_length = value;
_mLength = value;
_version++;
}
}
@@ -259,26 +259,26 @@ namespace System.Collections
if (array is uint[])
{
Array.Copy(m_array, 0, array, index, GetArrayLength(m_length, BitsPerInt32));
Array.Copy(_mArray, 0, array, index, GetArrayLength(_mLength, BitsPerInt32));
}
else if (array is byte[])
{
int arrayLength = GetArrayLength(m_length, BitsPerByte);
int arrayLength = GetArrayLength(_mLength, BitsPerByte);
if ((array.Length - index) < arrayLength)
throw new ArgumentException();
byte[] b = (byte[])array;
for (int i = 0; i < arrayLength; i++)
b[index + i] = (byte)((m_array[i / 4] >> ((i % 4) * 8)) & 0x000000FF); // Shift to bring the required byte to LSB, then mask
b[index + i] = (byte)((_mArray[i / 4] >> ((i % 4) * 8)) & 0x000000FF); // Shift to bring the required byte to LSB, then mask
}
else if (array is bool[])
{
if (array.Length - index < m_length)
if (array.Length - index < _mLength)
throw new ArgumentException();
bool[] b = (bool[])array;
for (int i = 0; i < m_length; i++)
b[index + i] = ((m_array[i / 32] >> (i % 32)) & 0x00000001) != 0;
for (int i = 0; i < _mLength; i++)
b[index + i] = ((_mArray[i / 32] >> (i % 32)) & 0x00000001) != 0;
}
else
throw new ArgumentException();
@@ -290,7 +290,7 @@ namespace System.Collections
{
Contract.Ensures(Contract.Result<int>() >= 0);
return (int)m_length;
return (int)_mLength;
}
}
@@ -299,9 +299,9 @@ namespace System.Collections
Contract.Ensures(Contract.Result<Object>() != null);
Contract.Ensures(((BitArray)Contract.Result<Object>()).Length == this.Length);
BitSet bitArray = new BitSet(m_array);
BitSet bitArray = new BitSet(_mArray);
bitArray._version = _version;
bitArray.m_length = m_length;
bitArray._mLength = _mLength;
return bitArray;
}
@@ -352,16 +352,16 @@ namespace System.Collections
[Serializable]
private class BitArrayEnumeratorSimple : IEnumerator, ICloneable
{
private BitSet bitarray;
private int index;
private int version;
private bool currentElement;
private BitSet _bitarray;
private int _index;
private int _version;
private bool _currentElement;
internal BitArrayEnumeratorSimple(BitSet bitarray)
{
this.bitarray = bitarray;
this.index = -1;
version = bitarray._version;
this._bitarray = bitarray;
_index = -1;
_version = bitarray._version;
}
public Object Clone()
@@ -372,14 +372,14 @@ namespace System.Collections
public bool MoveNext()
{
//if (version != bitarray._version) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumFailedVersion));
if (index < (bitarray.Count - 1))
if (_index < (_bitarray.Count - 1))
{
index++;
currentElement = bitarray.Get(index);
_index++;
_currentElement = _bitarray.Get(_index);
return true;
}
else
index = bitarray.Count;
_index = _bitarray.Count;
return false;
}
@@ -388,27 +388,27 @@ namespace System.Collections
{
get
{
if (index == -1)
if (_index == -1)
throw new InvalidOperationException();
if (index >= bitarray.Count)
if (_index >= _bitarray.Count)
throw new InvalidOperationException();
return currentElement;
return _currentElement;
}
}
public void Reset()
{
//if (version != bitarray._version) throw new InvalidOperationException(Environment.GetResourceString(ResId.InvalidOperation_EnumFailedVersion));
index = -1;
_index = -1;
}
}
private uint[] m_array;
private int m_length;
private uint[] _mArray;
private int _mLength;
private int _version;
[NonSerialized]
private Object _syncRoot;
private const int _ShrinkThreshold = 256;
private const int ShrinkThreshold = 256;
}
}