private void AddLabelFixup(int label, int fixupSite)
{
if (!(label < 0))
{
throw new ArgumentException("Bad label, no biscuit");
}
label &= unchecked((int)(0x7FFFFFFF));
if (!(label < itsLabelTableTop))
{
throw new ArgumentException("Bad label");
}
int top = itsFixupTableTop;
if (itsFixupTable == null || top == itsFixupTable.Length)
{
if (itsFixupTable == null)
{
itsFixupTable = new long[MIN_FIXUP_TABLE_SIZE];
}
else
{
long[] tmp = new long[itsFixupTable.Length * 2];
System.Array.Copy(itsFixupTable, 0, tmp, 0, top);
itsFixupTable = tmp;
}
}
itsFixupTableTop = top + 1;
itsFixupTable[top] = ((long)label << 32) | fixupSite;
}