本文整理汇总了C#中Cci.WriteCompressedInteger方法的典型用法代码示例。如果您正苦于以下问题:C# Cci.WriteCompressedInteger方法的具体用法?C# Cci.WriteCompressedInteger怎么用?C# Cci.WriteCompressedInteger使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cci
的用法示例。
在下文中一共展示了Cci.WriteCompressedInteger方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SerializeLambdaMap
internal void SerializeLambdaMap(Cci.BlobWriter writer)
{
Debug.Assert(this.MethodOrdinal >= -1);
writer.WriteCompressedInteger((uint)(this.MethodOrdinal + 1));
int syntaxOffsetBaseline = -1;
foreach (ClosureDebugInfo info in this.Closures)
{
if (info.SyntaxOffset < syntaxOffsetBaseline)
{
syntaxOffsetBaseline = info.SyntaxOffset;
}
}
foreach (LambdaDebugInfo info in this.Lambdas)
{
if (info.SyntaxOffset < syntaxOffsetBaseline)
{
syntaxOffsetBaseline = info.SyntaxOffset;
}
}
writer.WriteCompressedInteger((uint)(-syntaxOffsetBaseline));
writer.WriteCompressedInteger((uint)this.Closures.Length);
foreach (ClosureDebugInfo info in this.Closures)
{
writer.WriteCompressedInteger((uint)(info.SyntaxOffset - syntaxOffsetBaseline));
}
foreach (LambdaDebugInfo info in this.Lambdas)
{
Debug.Assert(info.ClosureOrdinal >= LambdaDebugInfo.MinClosureOrdinal);
Debug.Assert(info.LambdaId.Generation == 0);
writer.WriteCompressedInteger((uint)(info.SyntaxOffset - syntaxOffsetBaseline));
writer.WriteCompressedInteger((uint)(info.ClosureOrdinal - LambdaDebugInfo.MinClosureOrdinal));
}
}
示例2: SerializeLocalSlots
internal void SerializeLocalSlots(Cci.BlobWriter writer)
{
int syntaxOffsetBaseline = -1;
foreach (LocalSlotDebugInfo localSlot in this.LocalSlots)
{
if (localSlot.Id.SyntaxOffset < syntaxOffsetBaseline)
{
syntaxOffsetBaseline = localSlot.Id.SyntaxOffset;
}
}
if (syntaxOffsetBaseline != -1)
{
writer.WriteByte(SyntaxOffsetBaseline);
writer.WriteCompressedInteger((uint)(-syntaxOffsetBaseline));
}
foreach (LocalSlotDebugInfo localSlot in this.LocalSlots)
{
SynthesizedLocalKind kind = localSlot.SynthesizedKind;
Debug.Assert(kind <= SynthesizedLocalKind.MaxValidValueForLocalVariableSerializedToDebugInformation);
if (!kind.IsLongLived())
{
writer.WriteByte(0);
continue;
}
byte b = (byte)(kind + 1);
Debug.Assert((b & (1 << 7)) == 0);
bool hasOrdinal = localSlot.Id.Ordinal > 0;
if (hasOrdinal)
{
b |= 1 << 7;
}
writer.WriteByte(b);
writer.WriteCompressedInteger((uint)(localSlot.Id.SyntaxOffset - syntaxOffsetBaseline));
if (hasOrdinal)
{
writer.WriteCompressedInteger((uint)localSlot.Id.Ordinal);
}
}
}