// Microsoft (R) .NET Framework IL Disassembler. Version 1.1.4322.573 // Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. // PE Header: // Subsystem: 00000003 // Native entry point address: 00002000 // Image base: 00400000 // Section alignment: 00002000 // File alignment: 00000200 // Stack reserve size: 00100000 // Stack commit size: 00001000 // Directories: 00000010 // 0 [0 ] address [size] of Export Directory: // 2018 [4f ] address [size] of Import Directory: // 8000 [30c ] address [size] of Resource Directory: // 0 [0 ] address [size] of Exception Directory: // 0 [0 ] address [size] of Security Directory: // a000 [c ] address [size] of Base Relocation Table: // 0 [0 ] address [size] of Debug Directory: // 0 [0 ] address [size] of Architecture Specific: // 0 [0 ] address [size] of Global Pointer: // 0 [0 ] address [size] of TLS Directory: // 0 [0 ] address [size] of Load Config Directory: // 0 [0 ] address [size] of Bound Import Directory: // 2010 [8 ] address [size] of Import Address Table: // 0 [0 ] address [size] of Delay Load IAT: // 2064 [48 ] address [size] of CLR Header: // Import Address Table // mscoree.dll // 00002010 Import Address Table // 0000204e Import Name Table // 0 time date stamp // 0 Index of first forwarder reference // // 0 _CorDllMain // Delay Load Import Address Table // No data. // CLR Header: // 72 Header Size // 2 Major Runtime Version // 0 Minor Runtime Version // 1 Flags // 0 Entrypoint Token // 4320 [32e4 ] address [size] of Metadata Directory: // 4320 [0 ] address [size] of Resources Directory: // 0 [0 ] address [size] of Strong Name Signature: // 0 [0 ] address [size] of CodeManager Table: // 0 [0 ] address [size] of VTableFixups Directory: // 0 [0 ] address [size] of Export Address Table: // 0 [0 ] address [size] of Precompile Header: // Code Manager Table: // default // Export Address Table Jumps: // No data. .module extern xpdotnet /*1A000001*/ .module extern 'xpcom-dotnet.so' /*1A000002*/ .module extern libxpcom.so /*1A000003*/ .module extern test.so /*1A000004*/ .assembly extern /*23000001*/ mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 1:0:5000:0 } .assembly /*20000001*/ 'xpcom-dotnet-managed' { .hash algorithm 0x00008004 .ver 0:0:0:0 } .module 'xpcom-dotnet-managed.dll' // MVID: {8047DB77-E1CA-49C6-B46E-0F7BF0882E3A} .custom /*0C000001:0A000073*/ instance void [mscorlib/* 23000001 */]System.Security.UnverifiableCodeAttribute/* 0100003B */::.ctor() /* 0A000073 */ = ( 01 00 00 00 ) .imagebase 0x00400000 .subsystem 0x00000003 .file alignment 512 .corflags 0x00000001 // Image base: 0x02c40000 // // ============== CLASS STRUCTURE DECLARATION ================== // .namespace Mozilla.XPCOM { .class /*02000002*/ public sequential ansi sealed beforefieldinit XPTType extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class XPTType .class /*02000003*/ private sequential ansi sealed beforefieldinit XPTParamDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class XPTParamDescriptor .class /*02000004*/ private sequential ansi sealed beforefieldinit XPTMethodDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class XPTMethodDescriptor .class /*02000005*/ public auto ansi beforefieldinit TypeInfo extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .class /*02000006*/ sequential ansi sealed nested public beforefieldinit TypeDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class TypeDescriptor .class /*02000007*/ sequential ansi sealed nested public beforefieldinit ParamDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class ParamDescriptor .class /*02000008*/ auto ansi nested public beforefieldinit MethodDescriptor extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class MethodDescriptor .class /*02000009*/ auto ansi sealed nested public TypeFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { } // end of class TypeFlags .class /*0200000A*/ auto ansi sealed nested public TypeTag extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { } // end of class TypeTag .class /*0200000B*/ auto ansi sealed nested public ParamFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { } // end of class ParamFlags .class /*0200000C*/ auto ansi sealed nested public MethodFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { } // end of class MethodFlags } // end of class TypeInfo .class /*0200000D*/ private explicit ansi sealed beforefieldinit XPTCMiniVariant extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class XPTCMiniVariant .class /*0200000E*/ private explicit ansi sealed beforefieldinit XPTCVariant extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { } // end of class XPTCVariant .class /*0200000F*/ public auto ansi beforefieldinit Invoker extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class Invoker .class /*02000010*/ private auto ansi beforefieldinit CLRWrapper extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .class /*02000011*/ auto ansi sealed nested private MethodInvoker extends [mscorlib/* 23000001 */]System.MulticastDelegate/* 01000038 */ { } // end of class MethodInvoker } // end of class CLRWrapper .class /*02000012*/ public auto ansi beforefieldinit Components extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class Components .class /*02000013*/ public auto ansi beforefieldinit BaseProxy extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class BaseProxy .class /*02000014*/ private auto ansi ProxyGenerator extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class ProxyGenerator .class /*02000015*/ private auto ansi InterfaceGenerator extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class InterfaceGenerator } // end of namespace Mozilla.XPCOM // ============================================================= // =============== GLOBAL FIELDS AND METHODS =================== // ============================================================= // =============== CLASS MEMBERS DECLARATION =================== // note that class flags, 'extends' and 'implements' clauses // are provided here for information only .namespace Mozilla.XPCOM { .class /*02000002*/ public sequential ansi sealed beforefieldinit XPTType extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*04000001*/ public static literal unsigned int8 FlagMask = int8(0xE0) .field /*04000002*/ public static literal unsigned int8 TagMask = int8(0x1F) .field /*04000003*/ public unsigned int8 prefix .field /*04000004*/ public unsigned int8 arg1 .field /*04000005*/ public unsigned int8 arg2 .field /*04000006*/ public unsigned int8 padding .field /*04000007*/ public unsigned int16 arg3 .method /*06000001*/ public hidebysig specialname static valuetype Mozilla.XPCOM.XPTType/* 02000002 */ op_Implicit(valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ td) cil managed // SIG: 00 01 11 08 11 18 { // Method begins at RVA 0x20ec // Code size 74 (0x4a) .maxstack 4 .locals /*11000001*/ init (valuetype Mozilla.XPCOM.XPTType/* 02000002 */ V_0) IL_0000: /* 12 | 00 */ ldloca.s V_0 IL_0002: /* FE15 | (02)000002 */ initobj Mozilla.XPCOM.XPTType/* 02000002 */ IL_0008: /* 12 | 00 */ ldloca.s V_0 IL_000a: /* 0F | 00 */ ldarga.s td IL_000c: /* 7B | (04)000010 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::flags /* 04000010 */ IL_0011: /* 0F | 00 */ ldarga.s td IL_0013: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0018: /* 60 | */ or IL_0019: /* 7D | (04)000003 */ stfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::prefix /* 04000003 */ IL_001e: /* 12 | 00 */ ldloca.s V_0 IL_0020: /* 0F | 00 */ ldarga.s td IL_0022: /* 7B | (04)000012 */ ldfld unsigned int8 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg1 /* 04000012 */ IL_0027: /* 7D | (04)000004 */ stfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::arg1 /* 04000004 */ IL_002c: /* 12 | 00 */ ldloca.s V_0 IL_002e: /* 0F | 00 */ ldarga.s td IL_0030: /* 7B | (04)000013 */ ldfld unsigned int8 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg2 /* 04000013 */ IL_0035: /* 7D | (04)000005 */ stfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::arg2 /* 04000005 */ IL_003a: /* 12 | 00 */ ldloca.s V_0 IL_003c: /* 0F | 00 */ ldarga.s td IL_003e: /* 7B | (04)000014 */ ldfld unsigned int16 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg3 /* 04000014 */ IL_0043: /* 7D | (04)000007 */ stfld unsigned int16 Mozilla.XPCOM.XPTType/* 02000002 */::arg3 /* 04000007 */ IL_0048: /* 06 | */ ldloc.0 IL_0049: /* 2A | */ ret } // end of method XPTType::op_Implicit } // end of class XPTType .class /*02000003*/ private sequential ansi sealed beforefieldinit XPTParamDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*04000008*/ public unsigned int8 param_flags .field /*04000009*/ public unsigned int8 padding1 .field /*0400000A*/ public valuetype Mozilla.XPCOM.XPTType/* 02000002 */ type } // end of class XPTParamDescriptor .class /*02000004*/ private sequential ansi sealed beforefieldinit XPTMethodDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*0400000B*/ public string name .field /*0400000C*/ public native int args .field /*0400000D*/ public native int result .field /*0400000E*/ public unsigned int8 flags .field /*0400000F*/ public unsigned int8 numArgs } // end of class XPTMethodDescriptor .class /*02000005*/ public auto ansi beforefieldinit TypeInfo extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .class /*02000006*/ sequential ansi sealed nested public beforefieldinit TypeDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*04000010*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ flags .field /*04000011*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ tag .field /*04000012*/ public unsigned int8 arg1 .field /*04000013*/ public unsigned int8 arg2 .field /*04000014*/ public unsigned int16 arg3 .method /*06000018*/ public hidebysig virtual instance string ToString() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x2544 // Code size 74 (0x4a) .maxstack 8 .locals /*1100000C*/ init (string V_0) IL_0000: /* 7E | (0A)000016 */ ldsfld string [mscorlib/* 23000001 */]System.String/* 01000003 */::Empty /* 0A000016 */ IL_0005: /* 0A | */ stloc.0 IL_0006: /* 02 | */ ldarg.0 IL_0007: /* 7B | (04)000010 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::flags /* 04000010 */ IL_000c: /* 39 | 20000000 */ brfalse IL_0031 IL_0011: /* 72 | (70)0001F7 */ ldstr "[" /* 700001F7 */ IL_0016: /* 02 | */ ldarg.0 IL_0017: /* 7B | (04)000010 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::flags /* 04000010 */ IL_001c: /* 8C | (02)000009 */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ IL_0021: /* 28 | (0A)000017 */ call instance string [mscorlib/* 23000001 */]System.Enum/* 0100000C */::ToString() /* 0A000017 */ IL_0026: /* 72 | (70)0001FB */ ldstr "]" /* 700001FB */ IL_002b: /* 28 | (0A)000013 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string, string) /* 0A000013 */ IL_0030: /* 0A | */ stloc.0 IL_0031: /* 06 | */ ldloc.0 IL_0032: /* 02 | */ ldarg.0 IL_0033: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0038: /* 8C | (02)00000A */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ IL_003d: /* 28 | (0A)000017 */ call instance string [mscorlib/* 23000001 */]System.Enum/* 0100000C */::ToString() /* 0A000017 */ IL_0042: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_0047: /* 0A | */ stloc.0 IL_0048: /* 06 | */ ldloc.0 IL_0049: /* 2A | */ ret } // end of method TypeDescriptor::ToString .method /*06000019*/ public hidebysig instance bool IsScalar() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x259c // Code size 43 (0x2b) .maxstack 2 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0006: /* 1F | 0C */ ldc.i4.s 12 IL_0008: /* 3E | 1A000000 */ ble IL_0027 IL_000d: /* 02 | */ ldarg.0 IL_000e: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0013: /* 1F | 10 */ ldc.i4.s 16 IL_0015: /* 3B | 0D000000 */ beq IL_0027 IL_001a: /* 02 | */ ldarg.0 IL_001b: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0020: /* 1F | 11 */ ldc.i4.s 17 IL_0022: /* 40 | 02000000 */ bne.un IL_0029 IL_0027: /* 17 | */ ldc.i4.1 IL_0028: /* 2A | */ ret IL_0029: /* 16 | */ ldc.i4.0 IL_002a: /* 2A | */ ret } // end of method TypeDescriptor::IsScalar .method /*0600001A*/ public hidebysig instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ AsCLRType() cil managed // SIG: 20 00 12 15 { // Method begins at RVA 0x25d4 // Code size 330 (0x14a) .maxstack 41 .locals /*1100000D*/ init (string V_0, valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0006: /* 0B | */ stloc.1 IL_0007: /* 07 | */ ldloc.1 IL_0008: /* 45 | 14000000 */ switch ( /* | 05000000 */ IL_0062, /* | 10000000 */ IL_006d, /* | 1B000000 */ IL_0078, /* | 26000000 */ IL_0083, /* | 31000000 */ IL_008e, /* | 3C000000 */ IL_0099, /* | 47000000 */ IL_00a4, /* | 52000000 */ IL_00af, /* | 5D000000 */ IL_00ba, /* | 68000000 */ IL_00c5, /* | 73000000 */ IL_00d0, /* | AA000000 */ IL_0107, /* | B5000000 */ IL_0112, /* | CB000000 */ IL_0128, /* | C0000000 */ IL_011d, /* | CB000000 */ IL_0128, /* | 7E000000 */ IL_00db, /* | 89000000 */ IL_00e6, /* | 94000000 */ IL_00f1, /* | 9F000000 */ IL_00fc) IL_005d: /* 38 | C6000000 */ br IL_0128 IL_0062: /* D0 | (01)00000D */ ldtoken [mscorlib/* 23000001 */]System.SByte/* 0100000D */ IL_0067: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_006c: /* 2A | */ ret IL_006d: /* D0 | (01)00000E */ ldtoken [mscorlib/* 23000001 */]System.Int16/* 0100000E */ IL_0072: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0077: /* 2A | */ ret IL_0078: /* D0 | (01)000002 */ ldtoken [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_007d: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0082: /* 2A | */ ret IL_0083: /* D0 | (01)00000F */ ldtoken [mscorlib/* 23000001 */]System.Int64/* 0100000F */ IL_0088: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_008d: /* 2A | */ ret IL_008e: /* D0 | (01)000010 */ ldtoken [mscorlib/* 23000001 */]System.Byte/* 01000010 */ IL_0093: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0098: /* 2A | */ ret IL_0099: /* D0 | (01)000011 */ ldtoken [mscorlib/* 23000001 */]System.UInt16/* 01000011 */ IL_009e: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00a3: /* 2A | */ ret IL_00a4: /* D0 | (01)000012 */ ldtoken [mscorlib/* 23000001 */]System.UInt32/* 01000012 */ IL_00a9: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00ae: /* 2A | */ ret IL_00af: /* D0 | (01)000013 */ ldtoken [mscorlib/* 23000001 */]System.UInt64/* 01000013 */ IL_00b4: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00b9: /* 2A | */ ret IL_00ba: /* D0 | (01)000014 */ ldtoken [mscorlib/* 23000001 */]System.Single/* 01000014 */ IL_00bf: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00c4: /* 2A | */ ret IL_00c5: /* D0 | (01)000015 */ ldtoken [mscorlib/* 23000001 */]System.Double/* 01000015 */ IL_00ca: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00cf: /* 2A | */ ret IL_00d0: /* D0 | (01)000016 */ ldtoken [mscorlib/* 23000001 */]System.Boolean/* 01000016 */ IL_00d5: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00da: /* 2A | */ ret IL_00db: /* D0 | (01)000003 */ ldtoken [mscorlib/* 23000001 */]System.String/* 01000003 */ IL_00e0: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00e5: /* 2A | */ ret IL_00e6: /* D0 | (01)000003 */ ldtoken [mscorlib/* 23000001 */]System.String/* 01000003 */ IL_00eb: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00f0: /* 2A | */ ret IL_00f1: /* D0 | (01)000001 */ ldtoken [mscorlib/* 23000001 */]System.Object/* 01000001 */ IL_00f6: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_00fb: /* 2A | */ ret IL_00fc: /* D0 | (01)000001 */ ldtoken [mscorlib/* 23000001 */]System.Object/* 01000001 */ IL_0101: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0106: /* 2A | */ ret IL_0107: /* D0 | (01)000010 */ ldtoken [mscorlib/* 23000001 */]System.Byte/* 01000010 */ IL_010c: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0111: /* 2A | */ ret IL_0112: /* D0 | (01)000009 */ ldtoken [mscorlib/* 23000001 */]System.Char/* 01000009 */ IL_0117: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_011c: /* 2A | */ ret IL_011d: /* 72 | (70)0001FF */ ldstr "System.Guid&" /* 700001FF */ IL_0122: /* 28 | (0A)000014 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetType(string) /* 0A000014 */ IL_0127: /* 2A | */ ret IL_0128: /* 72 | (70)000219 */ ldstr "type {0} not yet supported " /* 70000219 */ IL_012d: /* 02 | */ ldarg.0 IL_012e: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_0133: /* 8C | (02)00000A */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ IL_0138: /* 28 | (0A)000017 */ call instance string [mscorlib/* 23000001 */]System.Enum/* 0100000C */::ToString() /* 0A000017 */ IL_013d: /* 28 | (0A)000012 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object) /* 0A000012 */ IL_0142: /* 0A | */ stloc.0 IL_0143: /* 06 | */ ldloc.0 IL_0144: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0149: /* 7A | */ throw } // end of method TypeDescriptor::AsCLRType .method /*0600001B*/ public hidebysig specialname static valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ op_Implicit(valuetype Mozilla.XPCOM.XPTType/* 02000002 */ t) cil managed // SIG: 00 01 11 18 11 08 { // Method begins at RVA 0x272c // Code size 91 (0x5b) .maxstack 4 .locals /*1100000E*/ init (valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ V_0) IL_0000: /* 12 | 00 */ ldloca.s V_0 IL_0002: /* FE15 | (02)000006 */ initobj Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ IL_0008: /* 12 | 00 */ ldloca.s V_0 IL_000a: /* 0F | 00 */ ldarga.s t IL_000c: /* 7B | (04)000003 */ ldfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::prefix /* 04000003 */ IL_0011: /* 20 | E0000000 */ ldc.i4 0xe0 IL_0016: /* 5F | */ and IL_0017: /* D2 | */ conv.u1 IL_0018: /* 7D | (04)000010 */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::flags /* 04000010 */ IL_001d: /* 12 | 00 */ ldloca.s V_0 IL_001f: /* 0F | 00 */ ldarga.s t IL_0021: /* 7B | (04)000003 */ ldfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::prefix /* 04000003 */ IL_0026: /* 1F | 1F */ ldc.i4.s 31 IL_0028: /* 5F | */ and IL_0029: /* D2 | */ conv.u1 IL_002a: /* 7D | (04)000011 */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_002f: /* 12 | 00 */ ldloca.s V_0 IL_0031: /* 0F | 00 */ ldarga.s t IL_0033: /* 7B | (04)000004 */ ldfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::arg1 /* 04000004 */ IL_0038: /* 7D | (04)000012 */ stfld unsigned int8 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg1 /* 04000012 */ IL_003d: /* 12 | 00 */ ldloca.s V_0 IL_003f: /* 0F | 00 */ ldarga.s t IL_0041: /* 7B | (04)000005 */ ldfld unsigned int8 Mozilla.XPCOM.XPTType/* 02000002 */::arg2 /* 04000005 */ IL_0046: /* 7D | (04)000013 */ stfld unsigned int8 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg2 /* 04000013 */ IL_004b: /* 12 | 00 */ ldloca.s V_0 IL_004d: /* 0F | 00 */ ldarga.s t IL_004f: /* 7B | (04)000007 */ ldfld unsigned int16 Mozilla.XPCOM.XPTType/* 02000002 */::arg3 /* 04000007 */ IL_0054: /* 7D | (04)000014 */ stfld unsigned int16 Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::arg3 /* 04000014 */ IL_0059: /* 06 | */ ldloc.0 IL_005a: /* 2A | */ ret } // end of method TypeDescriptor::op_Implicit } // end of class TypeDescriptor .class /*02000007*/ sequential ansi sealed nested public beforefieldinit ParamDescriptor extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*04000015*/ public class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ 'method' .field /*04000016*/ public int32 index .field /*04000017*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ flags .field /*04000018*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ type .method /*0600001C*/ public hidebysig instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ GetCLRType() cil managed // SIG: 20 00 12 15 { // Method begins at RVA 0x2794 // Code size 82 (0x52) .maxstack 18 .locals /*1100000F*/ init (class [mscorlib/* 23000001 */]System.Type/* 01000005 */ V_0, class [mscorlib/* 23000001 */]System.Type/* 01000005 */ V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7C | (04)000018 */ ldflda valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::type /* 04000018 */ IL_0006: /* 28 | (06)00001A */ call instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::AsCLRType() /* 0600001A */ IL_000b: /* 0A | */ stloc.0 IL_000c: /* 02 | */ ldarg.0 IL_000d: /* 28 | (06)00001F */ call instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::IsOut() /* 0600001F */ IL_0012: /* 39 | 39000000 */ brfalse IL_0050 IL_0017: /* 02 | */ ldarg.0 IL_0018: /* 28 | (06)000021 */ call instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::IsRetVal() /* 06000021 */ IL_001d: /* 3A | 2E000000 */ brtrue IL_0050 IL_0022: /* 06 | */ ldloc.0 IL_0023: /* 6F | (0A)000019 */ callvirt instance string [mscorlib/* 23000001 */]System.Type/* 01000005 */::get_FullName() /* 0A000019 */ IL_0028: /* 72 | (70)000251 */ ldstr "&" /* 70000251 */ IL_002d: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_0032: /* 28 | (0A)000014 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetType(string) /* 0A000014 */ IL_0037: /* 0B | */ stloc.1 IL_0038: /* 72 | (70)000255 */ ldstr "{0} -> {1}" /* 70000255 */ IL_003d: /* 06 | */ ldloc.0 IL_003e: /* 6F | (0A)000019 */ callvirt instance string [mscorlib/* 23000001 */]System.Type/* 01000005 */::get_FullName() /* 0A000019 */ IL_0043: /* 07 | */ ldloc.1 IL_0044: /* 6F | (0A)000019 */ callvirt instance string [mscorlib/* 23000001 */]System.Type/* 01000005 */::get_FullName() /* 0A000019 */ IL_0049: /* 28 | (0A)00001A */ call void [mscorlib/* 23000001 */]System.Console/* 0100000A */::WriteLine(string, object, object) /* 0A00001A */ IL_004e: /* 07 | */ ldloc.1 IL_004f: /* 0A | */ stloc.0 IL_0050: /* 06 | */ ldloc.0 IL_0051: /* 2A | */ ret } // end of method ParamDescriptor::GetCLRType .method /*0600001D*/ public hidebysig virtual instance string ToString() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x27f4 // Code size 43 (0x2b) .maxstack 9 IL_0000: /* 72 | (70)0001F7 */ ldstr "[" /* 700001F7 */ IL_0005: /* 02 | */ ldarg.0 IL_0006: /* 7B | (04)000017 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_000b: /* 8C | (02)00000B */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ IL_0010: /* 28 | (0A)000017 */ call instance string [mscorlib/* 23000001 */]System.Enum/* 0100000C */::ToString() /* 0A000017 */ IL_0015: /* 72 | (70)00026B */ ldstr "] " /* 7000026B */ IL_001a: /* 02 | */ ldarg.0 IL_001b: /* 7C | (04)000018 */ ldflda valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::type /* 04000018 */ IL_0020: /* 28 | (06)000018 */ call instance string Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::ToString() /* 06000018 */ IL_0025: /* 28 | (0A)00001B */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string, string, string) /* 0A00001B */ IL_002a: /* 2A | */ ret } // end of method ParamDescriptor::ToString .method /*0600001E*/ public hidebysig instance string Name() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x282c // Code size 33 (0x21) .maxstack 6 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000015 */ ldfld class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::'method' /* 04000015 */ IL_0006: /* 6F | (06)000028 */ callvirt instance string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::Name() /* 06000028 */ IL_000b: /* 72 | (70)000271 */ ldstr ":" /* 70000271 */ IL_0010: /* 02 | */ ldarg.0 IL_0011: /* 7B | (04)000016 */ ldfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::index /* 04000016 */ IL_0016: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_001b: /* 28 | (0A)00001C */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(object, object, object) /* 0A00001C */ IL_0020: /* 2A | */ ret } // end of method ParamDescriptor::Name .method /*0600001F*/ public hidebysig instance bool IsOut() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x285c // Code size 16 (0x10) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000017 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_0006: /* 1F | 40 */ ldc.i4.s 64 IL_0008: /* 5F | */ and IL_0009: /* 16 | */ ldc.i4.0 IL_000a: /* FE01 | */ ceq IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* FE01 | */ ceq IL_000f: /* 2A | */ ret } // end of method ParamDescriptor::IsOut .method /*06000020*/ public hidebysig instance bool IsIn() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x2870 // Code size 19 (0x13) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000017 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_0006: /* 20 | 80000000 */ ldc.i4 0x80 IL_000b: /* 5F | */ and IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* FE01 | */ ceq IL_000f: /* 16 | */ ldc.i4.0 IL_0010: /* FE01 | */ ceq IL_0012: /* 2A | */ ret } // end of method ParamDescriptor::IsIn .method /*06000021*/ public hidebysig instance bool IsRetVal() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x2884 // Code size 16 (0x10) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)000017 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_0006: /* 1F | 20 */ ldc.i4.s 32 IL_0008: /* 5F | */ and IL_0009: /* 16 | */ ldc.i4.0 IL_000a: /* FE01 | */ ceq IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* FE01 | */ ceq IL_000f: /* 2A | */ ret } // end of method ParamDescriptor::IsRetVal .method /*06000022*/ public hidebysig instance valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ GetIID() cil managed // SIG: 20 00 11 2D { // Method begins at RVA 0x2898 // Code size 111 (0x6f) .maxstack 6 .locals /*11000010*/ init (valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ V_0, int32 V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7C | (04)000018 */ ldflda valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::type /* 04000018 */ IL_0006: /* 7B | (04)000011 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::tag /* 04000011 */ IL_000b: /* 1F | 12 */ ldc.i4.s 18 IL_000d: /* 3B | 1B000000 */ beq IL_002d IL_0012: /* 72 | (70)000275 */ ldstr "{0} not an interface type" /* 70000275 */ IL_0017: /* 02 | */ ldarg.0 IL_0018: /* 71 | (02)000007 */ ldobj Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_001d: /* 8C | (02)000007 */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0022: /* 28 | (0A)000012 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object) /* 0A000012 */ IL_0027: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_002c: /* 7A | */ throw IL_002d: /* 02 | */ ldarg.0 IL_002e: /* 7B | (04)000015 */ ldfld class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::'method' /* 04000015 */ IL_0033: /* 7B | (04)000020 */ ldfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::ifaceName /* 04000020 */ IL_0038: /* 02 | */ ldarg.0 IL_0039: /* 7B | (04)000015 */ ldfld class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::'method' /* 04000015 */ IL_003e: /* 7B | (04)000019 */ ldfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::index /* 04000019 */ IL_0043: /* 02 | */ ldarg.0 IL_0044: /* 7B | (04)000016 */ ldfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::index /* 04000016 */ IL_0049: /* 12 | 00 */ ldloca.s V_0 IL_004b: /* 28 | (06)000007 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetIIDForParam(string, int32, int32, valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */&) /* 06000007 */ IL_0050: /* 0B | */ stloc.1 IL_0051: /* 07 | */ ldloc.1 IL_0052: /* 39 | 16000000 */ brfalse IL_006d IL_0057: /* 72 | (70)0002A9 */ ldstr "GetIIDForParam failed: {0:X8}" /* 700002A9 */ IL_005c: /* 07 | */ ldloc.1 IL_005d: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0062: /* 28 | (0A)000012 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object) /* 0A000012 */ IL_0067: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_006c: /* 7A | */ throw IL_006d: /* 06 | */ ldloc.0 IL_006e: /* 2A | */ ret } // end of method ParamDescriptor::GetIID .method /*06000023*/ public hidebysig instance string GetInterfaceName() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x2914 // Code size 12 (0xc) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (06)000022 */ call instance valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::GetIID() /* 06000022 */ IL_0006: /* 28 | (06)000014 */ call string Mozilla.XPCOM.TypeInfo/* 02000005 */::NameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */) /* 06000014 */ IL_000b: /* 2A | */ ret } // end of method ParamDescriptor::GetInterfaceName } // end of class ParamDescriptor .class /*02000008*/ auto ansi nested public beforefieldinit MethodDescriptor extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .field /*04000019*/ public int32 index .field /*0400001A*/ public string name .field /*0400001B*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] args .field /*0400001C*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ result .field /*0400001D*/ public class [mscorlib/* 23000001 */]System.Type/* 01000005 */[] argTypes .field /*0400001E*/ public class [mscorlib/* 23000001 */]System.Type/* 01000005 */ resultType .field /*0400001F*/ public valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ flags .field /*04000020*/ public string ifaceName .method /*06000024*/ public hidebysig specialname rtspecialname instance void .ctor() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2924 // Code size 7 (0x7) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)000001 */ call instance void [mscorlib/* 23000001 */]System.Object/* 01000001 */::.ctor() /* 0A000001 */ IL_0006: /* 2A | */ ret } // end of method MethodDescriptor::.ctor .method /*06000025*/ public hidebysig instance bool IsVisible() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x292c // Code size 13 (0xd) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)00001F */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_0006: /* 1F | 28 */ ldc.i4.s 40 IL_0008: /* 5F | */ and IL_0009: /* 16 | */ ldc.i4.0 IL_000a: /* FE01 | */ ceq IL_000c: /* 2A | */ ret } // end of method MethodDescriptor::IsVisible .method /*06000026*/ public hidebysig instance bool IsSetter() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x293c // Code size 16 (0x10) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)00001F */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_0006: /* 1F | 40 */ ldc.i4.s 64 IL_0008: /* 5F | */ and IL_0009: /* 16 | */ ldc.i4.0 IL_000a: /* FE01 | */ ceq IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* FE01 | */ ceq IL_000f: /* 2A | */ ret } // end of method MethodDescriptor::IsSetter .method /*06000027*/ public hidebysig instance bool IsGetter() cil managed // SIG: 20 00 02 { // Method begins at RVA 0x2950 // Code size 19 (0x13) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 7B | (04)00001F */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_0006: /* 20 | 80000000 */ ldc.i4 0x80 IL_000b: /* 5F | */ and IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* FE01 | */ ceq IL_000f: /* 16 | */ ldc.i4.0 IL_0010: /* FE01 | */ ceq IL_0012: /* 2A | */ ret } // end of method MethodDescriptor::IsGetter .method /*06000028*/ public hidebysig instance string Name() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x2964 // Code size 68 (0x44) .maxstack 5 IL_0000: /* 1C | */ ldc.i4.6 IL_0001: /* 8D | (01)000001 */ newarr [mscorlib/* 23000001 */]System.Object/* 01000001 */ IL_0006: /* 25 | */ dup IL_0007: /* 16 | */ ldc.i4.0 IL_0008: /* 02 | */ ldarg.0 IL_0009: /* 7B | (04)000020 */ ldfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::ifaceName /* 04000020 */ IL_000e: /* A2 | */ stelem.ref IL_000f: /* 25 | */ dup IL_0010: /* 17 | */ ldc.i4.1 IL_0011: /* 72 | (70)000271 */ ldstr ":" /* 70000271 */ IL_0016: /* A2 | */ stelem.ref IL_0017: /* 25 | */ dup IL_0018: /* 18 | */ ldc.i4.2 IL_0019: /* 02 | */ ldarg.0 IL_001a: /* 7B | (04)00001A */ ldfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::name /* 0400001A */ IL_001f: /* A2 | */ stelem.ref IL_0020: /* 25 | */ dup IL_0021: /* 19 | */ ldc.i4.3 IL_0022: /* 72 | (70)0002E5 */ ldstr "(" /* 700002E5 */ IL_0027: /* A2 | */ stelem.ref IL_0028: /* 25 | */ dup IL_0029: /* 1A | */ ldc.i4.4 IL_002a: /* 02 | */ ldarg.0 IL_002b: /* 7B | (04)000019 */ ldfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::index /* 04000019 */ IL_0030: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0035: /* A2 | */ stelem.ref IL_0036: /* 25 | */ dup IL_0037: /* 1B | */ ldc.i4.5 IL_0038: /* 72 | (70)0002E9 */ ldstr ")" /* 700002E9 */ IL_003d: /* A2 | */ stelem.ref IL_003e: /* 28 | (0A)00001D */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(object[]) /* 0A00001D */ IL_0043: /* 2A | */ ret } // end of method MethodDescriptor::Name .method /*06000029*/ public hidebysig instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ FindResultType() cil managed // SIG: 20 00 12 15 { // Method begins at RVA 0x29b4 // Code size 76 (0x4c) .maxstack 8 .locals /*11000011*/ init (int32 V_0) IL_0000: /* 16 | */ ldc.i4.0 IL_0001: /* 0A | */ stloc.0 IL_0002: /* 38 | 2C000000 */ br IL_0033 IL_0007: /* 02 | */ ldarg.0 IL_0008: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_000d: /* 06 | */ ldloc.0 IL_000e: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0013: /* 28 | (06)000021 */ call instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::IsRetVal() /* 06000021 */ IL_0018: /* 39 | 12000000 */ brfalse IL_002f IL_001d: /* 02 | */ ldarg.0 IL_001e: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0023: /* 06 | */ ldloc.0 IL_0024: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0029: /* 28 | (06)00001C */ call instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::GetCLRType() /* 0600001C */ IL_002e: /* 2A | */ ret IL_002f: /* 06 | */ ldloc.0 IL_0030: /* 17 | */ ldc.i4.1 IL_0031: /* 58 | */ add IL_0032: /* 0A | */ stloc.0 IL_0033: /* 06 | */ ldloc.0 IL_0034: /* 02 | */ ldarg.0 IL_0035: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_003a: /* 8E | */ ldlen IL_003b: /* 69 | */ conv.i4 IL_003c: /* 3F | C6FFFFFF */ blt IL_0007 IL_0041: /* D0 | (01)000017 */ ldtoken [mscorlib/* 23000001 */]System.Void/* 01000017 */ IL_0046: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_004b: /* 2A | */ ret } // end of method MethodDescriptor::FindResultType .method /*0600002A*/ public hidebysig instance void BuildArgTypes() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2a0c // Code size 174 (0xae) .maxstack 10 .locals /*11000012*/ init (int32 V_0, int32 V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 6F | (06)000025 */ callvirt instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::IsVisible() /* 06000025 */ IL_0006: /* 3A | 0D000000 */ brtrue IL_0018 IL_000b: /* 02 | */ ldarg.0 IL_000c: /* 16 | */ ldc.i4.0 IL_000d: /* 8D | (01)000005 */ newarr [mscorlib/* 23000001 */]System.Type/* 01000005 */ IL_0012: /* 7D | (04)00001D */ stfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::argTypes /* 0400001D */ IL_0017: /* 2A | */ ret IL_0018: /* 02 | */ ldarg.0 IL_0019: /* 7B | (04)00001E */ ldfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::resultType /* 0400001E */ IL_001e: /* D0 | (01)000017 */ ldtoken [mscorlib/* 23000001 */]System.Void/* 01000017 */ IL_0023: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0028: /* 3B | 1A000000 */ beq IL_0047 IL_002d: /* 02 | */ ldarg.0 IL_002e: /* 02 | */ ldarg.0 IL_002f: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0034: /* 8E | */ ldlen IL_0035: /* 69 | */ conv.i4 IL_0036: /* 17 | */ ldc.i4.1 IL_0037: /* 59 | */ sub IL_0038: /* 8D | (01)000005 */ newarr [mscorlib/* 23000001 */]System.Type/* 01000005 */ IL_003d: /* 7D | (04)00001D */ stfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::argTypes /* 0400001D */ IL_0042: /* 38 | 13000000 */ br IL_005a IL_0047: /* 02 | */ ldarg.0 IL_0048: /* 02 | */ ldarg.0 IL_0049: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_004e: /* 8E | */ ldlen IL_004f: /* 69 | */ conv.i4 IL_0050: /* 8D | (01)000005 */ newarr [mscorlib/* 23000001 */]System.Type/* 01000005 */ IL_0055: /* 7D | (04)00001D */ stfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::argTypes /* 0400001D */ IL_005a: /* 16 | */ ldc.i4.0 IL_005b: /* 0A | */ stloc.0 IL_005c: /* 16 | */ ldc.i4.0 IL_005d: /* 0B | */ stloc.1 IL_005e: /* 38 | 3C000000 */ br IL_009f IL_0063: /* 02 | */ ldarg.0 IL_0064: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0069: /* 07 | */ ldloc.1 IL_006a: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_006f: /* 28 | (06)000021 */ call instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::IsRetVal() /* 06000021 */ IL_0074: /* 39 | 05000000 */ brfalse IL_007e IL_0079: /* 38 | 1D000000 */ br IL_009b IL_007e: /* 02 | */ ldarg.0 IL_007f: /* 7B | (04)00001D */ ldfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::argTypes /* 0400001D */ IL_0084: /* 06 | */ ldloc.0 IL_0085: /* 25 | */ dup IL_0086: /* 17 | */ ldc.i4.1 IL_0087: /* 58 | */ add IL_0088: /* 0A | */ stloc.0 IL_0089: /* 02 | */ ldarg.0 IL_008a: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_008f: /* 07 | */ ldloc.1 IL_0090: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0095: /* 28 | (06)00001C */ call instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::GetCLRType() /* 0600001C */ IL_009a: /* A2 | */ stelem.ref IL_009b: /* 07 | */ ldloc.1 IL_009c: /* 17 | */ ldc.i4.1 IL_009d: /* 58 | */ add IL_009e: /* 0B | */ stloc.1 IL_009f: /* 07 | */ ldloc.1 IL_00a0: /* 02 | */ ldarg.0 IL_00a1: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_00a6: /* 8E | */ ldlen IL_00a7: /* 69 | */ conv.i4 IL_00a8: /* 3F | B6FFFFFF */ blt IL_0063 IL_00ad: /* 2A | */ ret } // end of method MethodDescriptor::BuildArgTypes .method /*0600002B*/ public hidebysig virtual instance string ToString() cil managed // SIG: 20 00 0E { // Method begins at RVA 0x2ac8 // Code size 169 (0xa9) .maxstack 14 .locals /*11000013*/ init (string V_0, int32 V_1) IL_0000: /* 7E | (0A)000016 */ ldsfld string [mscorlib/* 23000001 */]System.String/* 01000003 */::Empty /* 0A000016 */ IL_0005: /* 0A | */ stloc.0 IL_0006: /* 02 | */ ldarg.0 IL_0007: /* 7B | (04)00001F */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_000c: /* 39 | 20000000 */ brfalse IL_0031 IL_0011: /* 72 | (70)0001F7 */ ldstr "[" /* 700001F7 */ IL_0016: /* 02 | */ ldarg.0 IL_0017: /* 7B | (04)00001F */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_001c: /* 8C | (02)00000C */ box Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ IL_0021: /* 28 | (0A)000017 */ call instance string [mscorlib/* 23000001 */]System.Enum/* 0100000C */::ToString() /* 0A000017 */ IL_0026: /* 72 | (70)00026B */ ldstr "] " /* 7000026B */ IL_002b: /* 28 | (0A)000013 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string, string) /* 0A000013 */ IL_0030: /* 0A | */ stloc.0 IL_0031: /* 06 | */ ldloc.0 IL_0032: /* 02 | */ ldarg.0 IL_0033: /* 7C | (04)00001C */ ldflda valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::result /* 0400001C */ IL_0038: /* 28 | (06)00001D */ call instance string Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::ToString() /* 0600001D */ IL_003d: /* 72 | (70)0002ED */ ldstr " " /* 700002ED */ IL_0042: /* 02 | */ ldarg.0 IL_0043: /* 7B | (04)00001A */ ldfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::name /* 0400001A */ IL_0048: /* 72 | (70)0002E5 */ ldstr "(" /* 700002E5 */ IL_004d: /* 28 | (0A)00001B */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string, string, string) /* 0A00001B */ IL_0052: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_0057: /* 0A | */ stloc.0 IL_0058: /* 16 | */ ldc.i4.0 IL_0059: /* 0B | */ stloc.1 IL_005a: /* 38 | 2E000000 */ br IL_008d IL_005f: /* 07 | */ ldloc.1 IL_0060: /* 39 | 0C000000 */ brfalse IL_0071 IL_0065: /* 06 | */ ldloc.0 IL_0066: /* 72 | (70)0002F1 */ ldstr ", " /* 700002F1 */ IL_006b: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_0070: /* 0A | */ stloc.0 IL_0071: /* 06 | */ ldloc.0 IL_0072: /* 02 | */ ldarg.0 IL_0073: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0078: /* 07 | */ ldloc.1 IL_0079: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_007e: /* 28 | (06)00001D */ call instance string Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::ToString() /* 0600001D */ IL_0083: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_0088: /* 0A | */ stloc.0 IL_0089: /* 07 | */ ldloc.1 IL_008a: /* 17 | */ ldc.i4.1 IL_008b: /* 58 | */ add IL_008c: /* 0B | */ stloc.1 IL_008d: /* 07 | */ ldloc.1 IL_008e: /* 02 | */ ldarg.0 IL_008f: /* 7B | (04)00001B */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0094: /* 8E | */ ldlen IL_0095: /* 69 | */ conv.i4 IL_0096: /* 3F | C4FFFFFF */ blt IL_005f IL_009b: /* 06 | */ ldloc.0 IL_009c: /* 72 | (70)0002E9 */ ldstr ")" /* 700002E9 */ IL_00a1: /* 28 | (0A)000018 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string) /* 0A000018 */ IL_00a6: /* 0A | */ stloc.0 IL_00a7: /* 06 | */ ldloc.0 IL_00a8: /* 2A | */ ret } // end of method MethodDescriptor::ToString } // end of class MethodDescriptor .class /*02000009*/ auto ansi sealed nested public TypeFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { .custom /*0C000002:0A000074*/ instance void [mscorlib/* 23000001 */]System.FlagsAttribute/* 0100003C */::.ctor() /* 0A000074 */ = ( 01 00 00 00 ) .field /*04000021*/ public specialname rtspecialname unsigned int8 value__ .field /*04000022*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Pointer = int8(0x80) .field /*04000023*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ UniquePointer = int8(0x40) .field /*04000024*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeFlags/* 02000009 */ Reference = int8(0x20) } // end of class TypeFlags .class /*0200000A*/ auto ansi sealed nested public TypeTag extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { .field /*04000025*/ public specialname rtspecialname unsigned int8 value__ .field /*04000026*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Int8 = int8(0x00) .field /*04000027*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Int16 = int8(0x01) .field /*04000028*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Int32 = int8(0x02) .field /*04000029*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Int64 = int8(0x03) .field /*0400002A*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ UInt8 = int8(0x04) .field /*0400002B*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ UInt16 = int8(0x05) .field /*0400002C*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ UInt32 = int8(0x06) .field /*0400002D*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ UInt64 = int8(0x07) .field /*0400002E*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Float = int8(0x08) .field /*0400002F*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Double = int8(0x09) .field /*04000030*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Bool = int8(0x0A) .field /*04000031*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Char = int8(0x0B) .field /*04000032*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ WChar = int8(0x0C) .field /*04000033*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Void = int8(0x0D) .field /*04000034*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ NSIdPtr = int8(0x0E) .field /*04000035*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ AString = int8(0x0F) .field /*04000036*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ String = int8(0x10) .field /*04000037*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ WString = int8(0x11) .field /*04000038*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Interface = int8(0x12) .field /*04000039*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ InterfaceIs = int8(0x13) .field /*0400003A*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ Array = int8(0x14) .field /*0400003B*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ StringSizeIs = int8(0x15) .field /*0400003C*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ WStringSizeIs = int8(0x16) .field /*0400003D*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ UTF8String = int8(0x17) .field /*0400003E*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ CString = int8(0x18) .field /*0400003F*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ AString_dup = int8(0x19) } // end of class TypeTag .class /*0200000B*/ auto ansi sealed nested public ParamFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { .custom /*0C000003:0A000074*/ instance void [mscorlib/* 23000001 */]System.FlagsAttribute/* 0100003C */::.ctor() /* 0A000074 */ = ( 01 00 00 00 ) .field /*04000040*/ public specialname rtspecialname unsigned int8 value__ .field /*04000041*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ In = int8(0x80) .field /*04000042*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Out = int8(0x40) .field /*04000043*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ RetVal = int8(0x20) .field /*04000044*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Shared = int8(0x10) .field /*04000045*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Dipper = int8(0x08) } // end of class ParamFlags .class /*0200000C*/ auto ansi sealed nested public MethodFlags extends [mscorlib/* 23000001 */]System.Enum/* 0100000C */ { .custom /*0C000004:0A000074*/ instance void [mscorlib/* 23000001 */]System.FlagsAttribute/* 0100003C */::.ctor() /* 0A000074 */ = ( 01 00 00 00 ) .field /*04000046*/ public specialname rtspecialname unsigned int8 value__ .field /*04000047*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Getter = int8(0x80) .field /*04000048*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Setter = int8(0x40) .field /*04000049*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ NotXPCOM = int8(0x20) .field /*0400004A*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Constructor = int8(0x10) .field /*0400004B*/ public static literal valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Hidden = int8(0x08) } // end of class MethodFlags .method /*06000002*/ public hidebysig specialname rtspecialname instance void .ctor() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2144 // Code size 7 (0x7) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)000001 */ call instance void [mscorlib/* 23000001 */]System.Object/* 01000001 */::.ctor() /* 0A000001 */ IL_0006: /* 2A | */ ret } // end of method TypeInfo::.ctor .method /*06000003*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetAllMethodData(string iface, [out] native int& infos, [out] unsigned int16& count) cil managed preservesig // SIG: 00 03 08 0E 10 18 10 07 { } .method /*06000004*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetMethodData(string iface, int32 'method', [out] native int& info) cil managed preservesig // SIG: 00 03 08 0E 08 10 18 { } .method /*06000005*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetMethodData_byname(string iface, string 'method', [out] unsigned int16& index, [out] native int& info) cil managed preservesig // SIG: 00 04 08 0E 0E 10 07 10 18 { } .method /*06000006*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetMethodData_iid_index(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */& iid, int32 index, [out] native int& xptinfo) cil managed preservesig // SIG: 00 03 08 10 11 2D 08 10 18 { } .method /*06000007*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetIIDForParam(string iface, int32 'method', int32 param, [out] valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */& iid) cil managed preservesig // SIG: 00 04 08 0E 08 08 10 11 2D { } .method /*06000008*/ private hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetNameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */& iid, [out] string& name) cil managed preservesig // SIG: 00 02 08 10 11 2D 10 0E { } .method /*06000009*/ public hidebysig static pinvokeimpl("xpdotnet" ansi winapi) native int typeinfo_EnumerateInterfacesStart() cil managed preservesig // SIG: 00 00 18 { } .method /*0600000A*/ public hidebysig static pinvokeimpl("xpdotnet" ansi winapi) string typeinfo_EnumerateInterfacesNext(native int e) cil managed preservesig // SIG: 00 01 0E 18 { } .method /*0600000B*/ public hidebysig static pinvokeimpl("xpdotnet" ansi winapi) void typeinfo_EnumerateInterfacesStop(native int e) cil managed preservesig // SIG: 00 01 01 18 { } .method /*0600000C*/ public hidebysig static pinvokeimpl("xpdotnet" ansi winapi) int32 typeinfo_GetParentInfo(string name, [out] string& parentName, [out] unsigned int16& methodCount) cil managed preservesig // SIG: 00 03 08 0E 10 0E 10 07 { } .method /*0600000D*/ public hidebysig static string GetParentInfo(string name, [out] unsigned int16& methodCount) cil managed // SIG: 00 02 0E 0E 10 07 { // Method begins at RVA 0x214c // Code size 41 (0x29) .maxstack 5 .locals /*11000002*/ init (string V_0, int32 V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 12 | 00 */ ldloca.s V_0 IL_0003: /* 03 | */ ldarg.1 IL_0004: /* 28 | (06)00000C */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetParentInfo(string, string&, unsigned int16&) /* 0600000C */ IL_0009: /* 0B | */ stloc.1 IL_000a: /* 07 | */ ldloc.1 IL_000b: /* 39 | 17000000 */ brfalse IL_0027 IL_0010: /* 72 | (70)000001 */ ldstr "GetParentInfo({0}) failed: {1:X8}" /* 70000001 */ IL_0015: /* 02 | */ ldarg.0 IL_0016: /* 07 | */ ldloc.1 IL_0017: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_001c: /* 28 | (0A)000002 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object, object) /* 0A000002 */ IL_0021: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0026: /* 7A | */ throw IL_0027: /* 06 | */ ldloc.0 IL_0028: /* 2A | */ ret } // end of method TypeInfo::GetParentInfo .method /*0600000E*/ private hidebysig static valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ BuildParamDescriptor(native int paramptr, int32 index, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ 'method') cil managed // SIG: 00 03 11 1C 18 08 12 20 { // Method begins at RVA 0x2184 // Code size 86 (0x56) .maxstack 5 .locals /*11000003*/ init (valuetype Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */ V_0, valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* D0 | (02)000003 */ ldtoken Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */ IL_0006: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_000b: /* 28 | (0A)000005 */ call object [mscorlib/* 23000001 */]System.Runtime.InteropServices.Marshal/* 01000007 */::PtrToStructure(native int, class [mscorlib/* 23000001 */]System.Type/* 01000005 */) /* 0A000005 */ IL_0010: /* 79 | (02)000003 */ unbox Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */ IL_0015: /* 71 | (02)000003 */ ldobj Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */ IL_001a: /* 0A | */ stloc.0 IL_001b: /* 12 | 01 */ ldloca.s V_1 IL_001d: /* FE15 | (02)000007 */ initobj Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0023: /* 12 | 01 */ ldloca.s V_1 IL_0025: /* 04 | */ ldarg.2 IL_0026: /* 7D | (04)000015 */ stfld class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::'method' /* 04000015 */ IL_002b: /* 12 | 01 */ ldloca.s V_1 IL_002d: /* 03 | */ ldarg.1 IL_002e: /* 7D | (04)000016 */ stfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::index /* 04000016 */ IL_0033: /* 12 | 01 */ ldloca.s V_1 IL_0035: /* 12 | 00 */ ldloca.s V_0 IL_0037: /* 7B | (04)000008 */ ldfld unsigned int8 Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */::param_flags /* 04000008 */ IL_003c: /* 7D | (04)000017 */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_0041: /* 12 | 01 */ ldloca.s V_1 IL_0043: /* 12 | 00 */ ldloca.s V_0 IL_0045: /* 7B | (04)00000A */ ldfld valuetype Mozilla.XPCOM.XPTType/* 02000002 */ Mozilla.XPCOM.XPTParamDescriptor/* 02000003 */::type /* 0400000A */ IL_004a: /* 28 | (06)00001B */ call valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */::op_Implicit(valuetype Mozilla.XPCOM.XPTType/* 02000002 */) /* 0600001B */ IL_004f: /* 7D | (04)000018 */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::type /* 04000018 */ IL_0054: /* 07 | */ ldloc.1 IL_0055: /* 2A | */ ret } // end of method TypeInfo::BuildParamDescriptor .method /*0600000F*/ private hidebysig static valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ BuildRetValDescriptor(native int paramptr, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ 'method') cil managed // SIG: 00 02 11 1C 18 12 20 { // Method begins at RVA 0x21e8 // Code size 9 (0x9) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 15 | */ ldc.i4.m1 IL_0002: /* 03 | */ ldarg.1 IL_0003: /* 28 | (06)00000E */ call valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::BuildParamDescriptor(native int, int32, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */) /* 0600000E */ IL_0008: /* 2A | */ ret } // end of method TypeInfo::BuildRetValDescriptor .method /*06000010*/ private hidebysig static valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] BuildParamDescriptorArray(native int paramptr, int32 count, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ 'method') cil managed // SIG: 00 03 1D 11 1C 18 08 12 20 { // Method begins at RVA 0x21f4 // Code size 63 (0x3f) .maxstack 7 .locals /*11000004*/ init (valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] V_0, int32 V_1) IL_0000: /* 03 | */ ldarg.1 IL_0001: /* 8D | (02)000007 */ newarr Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0006: /* 0A | */ stloc.0 IL_0007: /* 16 | */ ldc.i4.0 IL_0008: /* 0B | */ stloc.1 IL_0009: /* 38 | 28000000 */ br IL_0036 IL_000e: /* 06 | */ ldloc.0 IL_000f: /* 07 | */ ldloc.1 IL_0010: /* 8F | (02)000007 */ ldelema Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0015: /* 02 | */ ldarg.0 IL_0016: /* 07 | */ ldloc.1 IL_0017: /* 04 | */ ldarg.2 IL_0018: /* 28 | (06)00000E */ call valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::BuildParamDescriptor(native int, int32, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */) /* 0600000E */ IL_001d: /* 81 | (02)000007 */ stobj Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ IL_0022: /* 0F | 00 */ ldarga.s paramptr IL_0024: /* 28 | (0A)000006 */ call instance int32 [mscorlib/* 23000001 */]System.IntPtr/* 01000008 */::ToInt32() /* 0A000006 */ IL_0029: /* 1E | */ ldc.i4.8 IL_002a: /* 58 | */ add IL_002b: /* 28 | (0A)000007 */ call native int [mscorlib/* 23000001 */]System.IntPtr/* 01000008 */::op_Explicit(int32) /* 0A000007 */ IL_0030: /* 10 | 00 */ starg.s paramptr IL_0032: /* 07 | */ ldloc.1 IL_0033: /* 17 | */ ldc.i4.1 IL_0034: /* 58 | */ add IL_0035: /* 0B | */ stloc.1 IL_0036: /* 07 | */ ldloc.1 IL_0037: /* 03 | */ ldarg.1 IL_0038: /* 3F | D1FFFFFF */ blt IL_000e IL_003d: /* 06 | */ ldloc.0 IL_003e: /* 2A | */ ret } // end of method TypeInfo::BuildParamDescriptorArray .method /*06000011*/ private hidebysig static class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ ConvertMethodDescriptor(native int xptinfo, string ifaceName, int32 index) cil managed // SIG: 00 03 12 20 18 0E 08 { // Method begins at RVA 0x2240 // Code size 183 (0xb7) .maxstack 17 .locals /*11000005*/ init (valuetype Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */ V_0, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* D0 | (02)000004 */ ldtoken Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */ IL_0006: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_000b: /* 28 | (0A)000005 */ call object [mscorlib/* 23000001 */]System.Runtime.InteropServices.Marshal/* 01000007 */::PtrToStructure(native int, class [mscorlib/* 23000001 */]System.Type/* 01000005 */) /* 0A000005 */ IL_0010: /* 79 | (02)000004 */ unbox Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */ IL_0015: /* 71 | (02)000004 */ ldobj Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */ IL_001a: /* 0A | */ stloc.0 IL_001b: /* 73 | (06)000024 */ newobj instance void Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::.ctor() /* 06000024 */ IL_0020: /* 0B | */ stloc.1 IL_0021: /* 07 | */ ldloc.1 IL_0022: /* 03 | */ ldarg.1 IL_0023: /* 7D | (04)000020 */ stfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::ifaceName /* 04000020 */ IL_0028: /* 07 | */ ldloc.1 IL_0029: /* 04 | */ ldarg.2 IL_002a: /* 7D | (04)000019 */ stfld int32 Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::index /* 04000019 */ IL_002f: /* 07 | */ ldloc.1 IL_0030: /* 12 | 00 */ ldloca.s V_0 IL_0032: /* 7B | (04)00000B */ ldfld string Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::name /* 0400000B */ IL_0037: /* 16 | */ ldc.i4.0 IL_0038: /* 6F | (0A)000008 */ callvirt instance char [mscorlib/* 23000001 */]System.String/* 01000003 */::get_Chars(int32) /* 0A000008 */ IL_003d: /* 28 | (0A)000009 */ call char [mscorlib/* 23000001 */]System.Char/* 01000009 */::ToUpper(char) /* 0A000009 */ IL_0042: /* 8C | (01)000009 */ box [mscorlib/* 23000001 */]System.Char/* 01000009 */ IL_0047: /* 12 | 00 */ ldloca.s V_0 IL_0049: /* 7B | (04)00000B */ ldfld string Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::name /* 0400000B */ IL_004e: /* 17 | */ ldc.i4.1 IL_004f: /* 6F | (0A)00000A */ callvirt instance string [mscorlib/* 23000001 */]System.String/* 01000003 */::Substring(int32) /* 0A00000A */ IL_0054: /* 28 | (0A)00000B */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(object, object) /* 0A00000B */ IL_0059: /* 7D | (04)00001A */ stfld string Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::name /* 0400001A */ IL_005e: /* 07 | */ ldloc.1 IL_005f: /* 12 | 00 */ ldloca.s V_0 IL_0061: /* 7B | (04)00000E */ ldfld unsigned int8 Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::flags /* 0400000E */ IL_0066: /* 7D | (04)00001F */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodFlags/* 0200000C */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::flags /* 0400001F */ IL_006b: /* 07 | */ ldloc.1 IL_006c: /* 12 | 00 */ ldloca.s V_0 IL_006e: /* 7B | (04)00000C */ ldfld native int Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::args /* 0400000C */ IL_0073: /* 12 | 00 */ ldloca.s V_0 IL_0075: /* 7B | (04)00000F */ ldfld unsigned int8 Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::numArgs /* 0400000F */ IL_007a: /* 07 | */ ldloc.1 IL_007b: /* 28 | (06)000010 */ call valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 */::BuildParamDescriptorArray(native int, int32, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */) /* 06000010 */ IL_0080: /* 7D | (04)00001B */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */[] Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::args /* 0400001B */ IL_0085: /* 07 | */ ldloc.1 IL_0086: /* 12 | 00 */ ldloca.s V_0 IL_0088: /* 7B | (04)00000D */ ldfld native int Mozilla.XPCOM.XPTMethodDescriptor/* 02000004 */::result /* 0400000D */ IL_008d: /* 07 | */ ldloc.1 IL_008e: /* 28 | (06)00000F */ call valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::BuildRetValDescriptor(native int, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */) /* 0600000F */ IL_0093: /* 7D | (04)00001C */ stfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::result /* 0400001C */ IL_0098: /* 07 | */ ldloc.1 IL_0099: /* 6F | (06)000025 */ callvirt instance bool Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::IsVisible() /* 06000025 */ IL_009e: /* 39 | 12000000 */ brfalse IL_00b5 IL_00a3: /* 07 | */ ldloc.1 IL_00a4: /* 07 | */ ldloc.1 IL_00a5: /* 6F | (06)000029 */ callvirt instance class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::FindResultType() /* 06000029 */ IL_00aa: /* 7D | (04)00001E */ stfld class [mscorlib/* 23000001 */]System.Type/* 01000005 */ Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::resultType /* 0400001E */ IL_00af: /* 07 | */ ldloc.1 IL_00b0: /* 6F | (06)00002A */ callvirt instance void Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */::BuildArgTypes() /* 0600002A */ IL_00b5: /* 07 | */ ldloc.1 IL_00b6: /* 2A | */ ret } // end of method TypeInfo::ConvertMethodDescriptor .method /*06000012*/ public hidebysig static class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */[] GetMethodData(string ifaceName) cil managed // SIG: 00 01 1D 12 20 0E { // Method begins at RVA 0x2304 // Code size 168 (0xa8) .maxstack 11 .locals /*11000006*/ init (unsigned int16 V_0, int32 V_1, native int V_2, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */[] V_3, int32 V_4, native int V_5, class [mscorlib/* 23000001 */]System.Exception/* 01000004 */ V_6, class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */[] V_7) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 12 | 02 */ ldloca.s V_2 IL_0003: /* 12 | 00 */ ldloca.s V_0 IL_0005: /* 28 | (06)000003 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetAllMethodData(string, native int&, unsigned int16&) /* 06000003 */ IL_000a: /* 0B | */ stloc.1 IL_000b: /* 07 | */ ldloc.1 IL_000c: /* 39 | 17000000 */ brfalse IL_0028 IL_0011: /* 72 | (70)000045 */ ldstr "GetAllMethodData({0}) failed: {1:X8}" /* 70000045 */ IL_0016: /* 02 | */ ldarg.0 IL_0017: /* 07 | */ ldloc.1 IL_0018: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_001d: /* 28 | (0A)000002 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object, object) /* 0A000002 */ IL_0022: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0027: /* 7A | */ throw IL_0028: /* 06 | */ ldloc.0 IL_0029: /* 69 | */ conv.i4 IL_002a: /* 8D | (02)000008 */ newarr Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ IL_002f: /* 0D | */ stloc.3 IL_0030: /* 16 | */ ldc.i4.0 IL_0031: /* 13 | 04 */ stloc.s V_4 IL_0033: /* 38 | 54000000 */ br IL_008c IL_0038: /* 08 | */ ldloc.2 IL_0039: /* 11 | 04 */ ldloc.s V_4 IL_003b: /* D0 | (01)000008 */ ldtoken [mscorlib/* 23000001 */]System.IntPtr/* 01000008 */ IL_0040: /* 28 | (0A)000004 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetTypeFromHandle(valuetype [mscorlib/* 23000001 */]System.RuntimeTypeHandle/* 01000006 */) /* 0A000004 */ IL_0045: /* 28 | (0A)00000C */ call int32 [mscorlib/* 23000001 */]System.Runtime.InteropServices.Marshal/* 01000007 */::SizeOf(class [mscorlib/* 23000001 */]System.Type/* 01000005 */) /* 0A00000C */ IL_004a: /* 5A | */ mul IL_004b: /* 28 | (0A)00000D */ call native int [mscorlib/* 23000001 */]System.Runtime.InteropServices.Marshal/* 01000007 */::ReadIntPtr(native int, int32) /* 0A00000D */ IL_0050: /* 13 | 05 */ stloc.s V_5 .try { .try { IL_0052: /* 09 | */ ldloc.3 IL_0053: /* 11 | 04 */ ldloc.s V_4 IL_0055: /* 11 | 05 */ ldloc.s V_5 IL_0057: /* 02 | */ ldarg.0 IL_0058: /* 11 | 04 */ ldloc.s V_4 IL_005a: /* 28 | (06)000011 */ call class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::ConvertMethodDescriptor(native int, string, int32) /* 06000011 */ IL_005f: /* A2 | */ stelem.ref IL_0060: /* DD | 21000000 */ leave IL_0086 } // end .try catch [mscorlib/* 23000001 */]System.Exception/* 01000004 */ { IL_0065: /* 13 | 06 */ stloc.s V_6 IL_0067: /* 72 | (70)00008F */ ldstr "skipping {0}[{1}]: {2}" /* 7000008F */ IL_006c: /* 02 | */ ldarg.0 IL_006d: /* 11 | 04 */ ldloc.s V_4 IL_006f: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0074: /* 11 | 06 */ ldloc.s V_6 IL_0076: /* 6F | (0A)00000E */ callvirt instance string [mscorlib/* 23000001 */]System.Exception/* 01000004 */::get_Message() /* 0A00000E */ IL_007b: /* 28 | (0A)00000F */ call void [mscorlib/* 23000001 */]System.Console/* 0100000A */::WriteLine(string, object, object, object) /* 0A00000F */ IL_0080: /* DD | 01000000 */ leave IL_0086 } // end handler // HEX: 00 00 00 00 52 00 00 00 13 00 00 00 65 00 00 00 20 00 00 00 04 00 00 01 } // end .try finally { IL_0085: /* DC | */ endfinally } // end handler // HEX: 02 00 00 00 52 00 00 00 33 00 00 00 85 00 00 00 01 00 00 00 00 00 00 00 IL_0086: /* 11 | 04 */ ldloc.s V_4 IL_0088: /* 17 | */ ldc.i4.1 IL_0089: /* 58 | */ add IL_008a: /* 13 | 04 */ stloc.s V_4 IL_008c: /* 11 | 04 */ ldloc.s V_4 IL_008e: /* 06 | */ ldloc.0 IL_008f: /* 69 | */ conv.i4 IL_0090: /* 3F | A3FFFFFF */ blt IL_0038 IL_0095: /* 06 | */ ldloc.0 IL_0096: /* 69 | */ conv.i4 IL_0097: /* 16 | */ ldc.i4.0 IL_0098: /* 3E | 06000000 */ ble IL_00a3 IL_009d: /* 08 | */ ldloc.2 IL_009e: /* 28 | (0A)000010 */ call void [mscorlib/* 23000001 */]System.Runtime.InteropServices.Marshal/* 01000007 */::FreeCoTaskMem(native int) /* 0A000010 */ IL_00a3: /* 09 | */ ldloc.3 IL_00a4: /* 2A | */ ret IL_00a5: /* 11 | 07 */ ldloc.s V_7 IL_00a7: /* 2A | */ ret } // end of method TypeInfo::GetMethodData .method /*06000013*/ public hidebysig static class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ GetMethodData(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ iid, int32 index) cil managed // SIG: 00 02 12 20 11 2D 08 { // Method begins at RVA 0x23ec // Code size 98 (0x62) .maxstack 8 .locals /*11000007*/ init (native int V_0, int32 V_1, string V_2) IL_0000: /* 0F | 00 */ ldarga.s iid IL_0002: /* 03 | */ ldarg.1 IL_0003: /* 12 | 00 */ ldloca.s V_0 IL_0005: /* 28 | (06)000006 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetMethodData_iid_index(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */&, int32, native int&) /* 06000006 */ IL_000a: /* 0B | */ stloc.1 IL_000b: /* 07 | */ ldloc.1 IL_000c: /* 39 | 22000000 */ brfalse IL_0033 IL_0011: /* 72 | (70)0000BD */ ldstr "GetMethodData({0}.{1}) failed: {2:X8}" /* 700000BD */ IL_0016: /* 02 | */ ldarg.0 IL_0017: /* 8C | (01)00000B */ box [mscorlib/* 23000001 */]System.Guid/* 0100000B */ IL_001c: /* 03 | */ ldarg.1 IL_001d: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0022: /* 07 | */ ldloc.1 IL_0023: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0028: /* 28 | (0A)000011 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object, object, object) /* 0A000011 */ IL_002d: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0032: /* 7A | */ throw IL_0033: /* 0F | 00 */ ldarga.s iid IL_0035: /* 12 | 02 */ ldloca.s V_2 IL_0037: /* 28 | (06)000008 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetNameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */&, string&) /* 06000008 */ IL_003c: /* 0B | */ stloc.1 IL_003d: /* 07 | */ ldloc.1 IL_003e: /* 39 | 16000000 */ brfalse IL_0059 IL_0043: /* 72 | (70)000109 */ ldstr "GetNameForIID failed: {0:X8}" /* 70000109 */ IL_0048: /* 07 | */ ldloc.1 IL_0049: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_004e: /* 28 | (0A)000012 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object) /* 0A000012 */ IL_0053: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0058: /* 7A | */ throw IL_0059: /* 06 | */ ldloc.0 IL_005a: /* 08 | */ ldloc.2 IL_005b: /* 03 | */ ldarg.1 IL_005c: /* 28 | (06)000011 */ call class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::ConvertMethodDescriptor(native int, string, int32) /* 06000011 */ IL_0061: /* 2A | */ ret } // end of method TypeInfo::GetMethodData .method /*06000014*/ public hidebysig static string NameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ iid) cil managed // SIG: 00 01 0E 11 2D { // Method begins at RVA 0x245c // Code size 40 (0x28) .maxstack 4 .locals /*11000008*/ init (int32 V_0, string V_1) IL_0000: /* 0F | 00 */ ldarga.s iid IL_0002: /* 12 | 01 */ ldloca.s V_1 IL_0004: /* 28 | (06)000008 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetNameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */&, string&) /* 06000008 */ IL_0009: /* 0A | */ stloc.0 IL_000a: /* 06 | */ ldloc.0 IL_000b: /* 39 | 16000000 */ brfalse IL_0026 IL_0010: /* 72 | (70)000109 */ ldstr "GetNameForIID failed: {0:X8}" /* 70000109 */ IL_0015: /* 06 | */ ldloc.0 IL_0016: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_001b: /* 28 | (0A)000012 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object) /* 0A000012 */ IL_0020: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0025: /* 7A | */ throw IL_0026: /* 07 | */ ldloc.1 IL_0027: /* 2A | */ ret } // end of method TypeInfo::NameForIID .method /*06000015*/ public hidebysig static class [mscorlib/* 23000001 */]System.Type/* 01000005 */ TypeForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ iid) cil managed // SIG: 00 01 12 15 11 2D { // Method begins at RVA 0x2490 // Code size 29 (0x1d) .maxstack 5 .locals /*11000009*/ init (string V_0) IL_0000: /* 72 | (70)000143 */ ldstr "Mozilla.XPCOM.Interfaces." /* 70000143 */ IL_0005: /* 02 | */ ldarg.0 IL_0006: /* 28 | (06)000014 */ call string Mozilla.XPCOM.TypeInfo/* 02000005 */::NameForIID(valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */) /* 06000014 */ IL_000b: /* 72 | (70)000177 */ ldstr ",Mozilla.XPCOM.Interfaces" /* 70000177 */ IL_0010: /* 28 | (0A)000013 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Concat(string, string, string) /* 0A000013 */ IL_0015: /* 0A | */ stloc.0 IL_0016: /* 06 | */ ldloc.0 IL_0017: /* 28 | (0A)000014 */ call class [mscorlib/* 23000001 */]System.Type/* 01000005 */ [mscorlib/* 23000001 */]System.Type/* 01000005 */::GetType(string) /* 0A000014 */ IL_001c: /* 2A | */ ret } // end of method TypeInfo::TypeForIID .method /*06000016*/ public hidebysig static class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ GetMethodData(string ifaceName, string methodName) cil managed // SIG: 00 02 12 20 0E 0E { // Method begins at RVA 0x24bc // Code size 52 (0x34) .maxstack 6 .locals /*1100000A*/ init (native int V_0, int32 V_1, unsigned int16 V_2) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 03 | */ ldarg.1 IL_0002: /* 12 | 02 */ ldloca.s V_2 IL_0004: /* 12 | 00 */ ldloca.s V_0 IL_0006: /* 28 | (06)000005 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetMethodData_byname(string, string, unsigned int16&, native int&) /* 06000005 */ IL_000b: /* 0B | */ stloc.1 IL_000c: /* 07 | */ ldloc.1 IL_000d: /* 39 | 18000000 */ brfalse IL_002a IL_0012: /* 72 | (70)0000BD */ ldstr "GetMethodData({0}.{1}) failed: {2:X8}" /* 700000BD */ IL_0017: /* 02 | */ ldarg.0 IL_0018: /* 03 | */ ldarg.1 IL_0019: /* 07 | */ ldloc.1 IL_001a: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_001f: /* 28 | (0A)000011 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object, object, object) /* 0A000011 */ IL_0024: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0029: /* 7A | */ throw IL_002a: /* 06 | */ ldloc.0 IL_002b: /* 02 | */ ldarg.0 IL_002c: /* 08 | */ ldloc.2 IL_002d: /* 69 | */ conv.i4 IL_002e: /* 28 | (06)000011 */ call class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::ConvertMethodDescriptor(native int, string, int32) /* 06000011 */ IL_0033: /* 2A | */ ret } // end of method TypeInfo::GetMethodData .method /*06000017*/ public hidebysig static class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ GetMethodData(string ifaceName, int32 methodIndex) cil managed // SIG: 00 02 12 20 0E 08 { // Method begins at RVA 0x24fc // Code size 59 (0x3b) .maxstack 6 .locals /*1100000B*/ init (native int V_0, int32 V_1) IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 03 | */ ldarg.1 IL_0002: /* 12 | 00 */ ldloca.s V_0 IL_0004: /* 28 | (06)000004 */ call int32 Mozilla.XPCOM.TypeInfo/* 02000005 */::typeinfo_GetMethodData(string, int32, native int&) /* 06000004 */ IL_0009: /* 0B | */ stloc.1 IL_000a: /* 06 | */ ldloc.0 IL_000b: /* 7E | (0A)000015 */ ldsfld native int [mscorlib/* 23000001 */]System.IntPtr/* 01000008 */::Zero /* 0A000015 */ IL_0010: /* 40 | 1D000000 */ bne.un IL_0032 IL_0015: /* 72 | (70)0001AB */ ldstr "GetMethodData({0}:{1}) failed: {2:X8}" /* 700001AB */ IL_001a: /* 02 | */ ldarg.0 IL_001b: /* 03 | */ ldarg.1 IL_001c: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0021: /* 07 | */ ldloc.1 IL_0022: /* 8C | (01)000002 */ box [mscorlib/* 23000001 */]System.Int32/* 01000002 */ IL_0027: /* 28 | (0A)000011 */ call string [mscorlib/* 23000001 */]System.String/* 01000003 */::Format(string, object, object, object) /* 0A000011 */ IL_002c: /* 73 | (0A)000003 */ newobj instance void [mscorlib/* 23000001 */]System.Exception/* 01000004 */::.ctor(string) /* 0A000003 */ IL_0031: /* 7A | */ throw IL_0032: /* 06 | */ ldloc.0 IL_0033: /* 02 | */ ldarg.0 IL_0034: /* 03 | */ ldarg.1 IL_0035: /* 28 | (06)000011 */ call class Mozilla.XPCOM.TypeInfo/* 02000005 *//MethodDescriptor/* 02000008 */ Mozilla.XPCOM.TypeInfo/* 02000005 */::ConvertMethodDescriptor(native int, string, int32) /* 06000011 */ IL_003a: /* 2A | */ ret } // end of method TypeInfo::GetMethodData } // end of class TypeInfo .class /*0200000D*/ private explicit ansi sealed beforefieldinit XPTCMiniVariant extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*0400004C*/ [0] public int8 i8 .field /*0400004D*/ [0] public int16 i16 .field /*0400004E*/ [0] public int32 i32 .field /*0400004F*/ [0] public int64 i64 .field /*04000050*/ [0] public unsigned int8 u8 .field /*04000051*/ [0] public unsigned int16 u16 .field /*04000052*/ [0] public unsigned int32 u32 .field /*04000053*/ [0] public unsigned int64 u64 .field /*04000054*/ [0] public float32 f .field /*04000055*/ [0] public float64 d .field /*04000056*/ [0] public int32 b .field /*04000057*/ [0] public unsigned int8 c .field /*04000058*/ [0] public char wc .field /*04000059*/ [0] public native int p .field /*0400005A*/ [0] public marshal( lpstr) string str } // end of class XPTCMiniVariant .class /*0200000E*/ private explicit ansi sealed beforefieldinit XPTCVariant extends [mscorlib/* 23000001 */]System.ValueType/* 01000037 */ { .field /*0400005B*/ [0] public valuetype Mozilla.XPCOM.XPTCMiniVariant/* 0200000D */ val .field /*0400005C*/ [8] public native int ptr .field /*0400005D*/ [12] public valuetype Mozilla.XPCOM.XPTType/* 02000002 */ type .field /*0400005E*/ [13] public int8 flags } // end of class XPTCVariant .class /*0200000F*/ public auto ansi beforefieldinit Invoker extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .method /*0600002C*/ public hidebysig specialname rtspecialname instance void .ctor() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2b80 // Code size 7 (0x7) .maxstack 8 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)000001 */ call instance void [mscorlib/* 23000001 */]System.Object/* 01000001 */::.ctor() /* 0A000001 */ IL_0006: /* 2A | */ ret } // end of method Invoker::.ctor .method /*0600002D*/ private hidebysig static void MarshalOneArg(valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */ param, object arg, native int buffer) cil managed // SIG: 00 03 01 11 1C 1C 18 { // Method begins at RVA 0x2b88 // Code size 702 (0x2be) .maxstack 55 .locals /*11000014*/ init (string V_0, valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeDescriptor/* 02000006 */ V_1, valuetype Mozilla.XPCOM.XPTCVariant/* 0200000E */ V_2, native int V_3, bool V_4, float32[] V_5, float64[] V_6, valuetype [mscorlib/* 23000001 */]System.Guid/* 0100000B */ V_7, valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//TypeTag/* 0200000A */ V_8) IL_0000: /* 0F | 00 */ ldarga.s param IL_0002: /* 7B | (04)000017 */ ldfld valuetype Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamFlags/* 0200000B */ Mozilla.XPCOM.TypeInfo/* 02000005 *//ParamDescriptor/* 02000007 */::flags /* 04000017 */ IL_0007: /* 20 | 80000000 */ ldc.i4 0x80 IL_