Imported Upstream version 3.12.0

Former-commit-id: cf92446697332992ec36726e78eb8703e1f259d7
This commit is contained in:
Jo Shields
2015-01-13 10:44:36 +00:00
parent 8b9b85e7f5
commit 181b81b4a4
659 changed files with 12743 additions and 16300 deletions

View File

@ -2688,24 +2688,8 @@ namespace System
}
}
internal unsafe void InternalSetLength (int newLength)
{
if (newLength > length)
throw new ArgumentOutOfRangeException ("newLength", "newLength as to be <= length");
// zero terminate, we can pass string objects directly via pinvoke
// we also zero the rest of the string, since the new GC needs to be
// able to handle the changing size (it will skip the 0 bytes).
fixed (char * pStr = &start_char) {
char *p = pStr + newLength;
char *end = pStr + length;
while (p < end) {
p [0] = '\0';
p++;
}
}
length = newLength;
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
internal extern void InternalSetLength (int newLength);
[ReliabilityContractAttribute (Consistency.WillNotCorruptState, Cer.MayFail)]
// When modifying it, GetCaseInsensitiveHashCode() should be modified as well.