Ildasm.Disassembler.WriteVTableFixupComment C# (CSharp) Method

WriteVTableFixupComment() private method

private WriteVTableFixupComment ( Ildasm.LineWriter lw ) : void
lw Ildasm.LineWriter
return void
        void WriteVTableFixupComment(LineWriter lw)
        {
            int ptrsize = GetPointerSize();
            VTableFixups[] fixups = GetVTableFixups();
            if (fixups.Length != 0)
            {
                lw.WriteLine("// VTableFixup Directory:");
                for (int i = 0; i < fixups.Length; i++)
                {
                    lw.WriteLine("//   IMAGE_COR_VTABLEFIXUP[{0}]:", i);
                    lw.WriteLine("//       RVA:               0x{0:x8}", fixups[i].RVA);
                    lw.WriteLine("//       Count:             0x{0:x4}", fixups[i].Count);
                    lw.WriteLine("//       Type:              0x{0:x4}", fixups[i].Type);
                    var methods = GetVTableMethods(fixups[i]);
                    for (int j = 0; j < methods.Length; j++)
                    {
                        var method = methods[j];
                        List<KeyValuePair<int,int>> list;
                        if (!vtentryMap.TryGetValue(method, out list))
                        {
                            list = new List<KeyValuePair<int, int>>();
                            vtentryMap.Add(method, list);
                        }
                        list.Add(new KeyValuePair<int,int>(i + 1, j + 1));
                        if (ptrsize == 4)
                        {
                            lw.WriteLine("//         [0x{0:x4}]            (0x{1:x8})", j, method.MetadataToken);
                        }
                        else
                        {
                            lw.WriteLine("//         [0x{0:x4}]            (0x         {1:x})", j, method.MetadataToken);
                        }
                    }
                }
                lw.WriteLine();
            }
            lw.WriteLine();
        }