1 write to gen
System.Data.Linq (1)
SqlClient\Reader\ObjectReaderCompiler.cs (1)
686this.gen = generator;
373 references to gen
System.Data.Linq (373)
SqlClient\Reader\ObjectReaderCompiler.cs (373)
781gen.Emit(OpCodes.Ldarg_0); 782gen.Emit(OpCodes.Ldfld, this.compiler.bufferReaderField); 786gen.Emit(OpCodes.Ldloc, this.locDataReader); 790gen.Emit(OpCodes.Ldarg_0); 791gen.Emit(OpCodes.Ldfld, this.compiler.ordinalsField); 795gen.Emit(OpCodes.Ldarg_0); 796gen.Emit(OpCodes.Ldfld, this.compiler.globalsField); 800gen.Emit(OpCodes.Ldarg_0); 801gen.Emit(OpCodes.Ldfld, this.compiler.argsField); 821gen.Emit(GetMethodCallOpCode(miInvoke), miInvoke); 828LocalBuilder loc = gen.DeclareLocal(u.Operand.ClrType); 829gen.Emit(OpCodes.Stloc, loc); 830gen.Emit(OpCodes.Ldloca, loc); 838Label labIsNull = gen.DefineLabel(); 839Label labExit = gen.DefineLabel(); 843LocalBuilder loc = gen.DeclareLocal(actualType); 844gen.Emit(OpCodes.Stloc, loc); 845gen.Emit(OpCodes.Ldloca, loc); 847gen.Emit(OpCodes.Brfalse, labIsNull); 850gen.Emit(OpCodes.Br_S, labExit); 852gen.MarkLabel(labIsNull); 855gen.MarkLabel(labExit); 869gen.Emit(OpCodes.Newarr, elemType); 871gen.Emit(OpCodes.Dup); 883gen.Emit(OpCodes.Ldfld, fi); 897LocalBuilder loc = gen.DeclareLocal(actualType); 898gen.Emit(OpCodes.Stloc, loc); 899gen.Emit(OpCodes.Ldloca, loc); 908LocalBuilder loc = gen.DeclareLocal(pType); 909gen.Emit(OpCodes.Stloc, loc); 910gen.Emit(OpCodes.Ldloca, loc); 918gen.Emit(OpCodes.Constrained, mc.Object.ClrType); 920gen.Emit(callOpCode, mc.Method); 933LocalBuilder locInstance = gen.DeclareLocal(sn.ClrType); 935Label labNewExit = gen.DefineLabel(); 936Label labAlreadyCached = gen.DefineLabel(); 948gen.Emit(OpCodes.Newobj, sn.Constructor); 949gen.Emit(OpCodes.Stloc, locInstance); 952gen.Emit(OpCodes.Ldloca, locInstance); 953gen.Emit(OpCodes.Initobj, sn.ClrType); 957gen.Emit(OpCodes.Newobj, ci); 958gen.Emit(OpCodes.Stloc, locInstance); 972LocalBuilder locCached = gen.DeclareLocal(sn.ClrType); 973locStoreInMember = gen.DeclareLocal(typeof(bool)); 974Label labExit = gen.DefineLabel(); 980gen.Emit(OpCodes.Ldarg_0); 982gen.Emit(OpCodes.Ldloc, locInstance); 992gen.Emit(GetMethodCallOpCode(miInsertLookup), miInsertLookup); 993gen.Emit(OpCodes.Castclass, sn.ClrType); 994gen.Emit(OpCodes.Stloc, locCached); 997gen.Emit(OpCodes.Ldloc, locCached); 998gen.Emit(OpCodes.Ldloc, locInstance); 999gen.Emit(OpCodes.Ceq); 1000gen.Emit(OpCodes.Brfalse, labAlreadyCached); 1003gen.Emit(OpCodes.Stloc, locStoreInMember); 1004gen.Emit(OpCodes.Br_S, labExit); 1006gen.MarkLabel(labAlreadyCached); 1007gen.Emit(OpCodes.Ldloc, locCached); 1008gen.Emit(OpCodes.Stloc, locInstance); 1011gen.Emit(OpCodes.Stloc, locStoreInMember); 1013gen.MarkLabel(labExit); 1026gen.Emit(OpCodes.Ldloc, locStoreInMember); 1028gen.Emit(OpCodes.Ceq); 1029gen.Emit(OpCodes.Brtrue, labNewExit); 1032gen.Emit(OpCodes.Ldarg_0); 1034gen.Emit(OpCodes.Ldloc, locInstance); 1044gen.Emit(GetMethodCallOpCode(miRaiseEvent), miRaiseEvent); 1047gen.MarkLabel(labNewExit); 1048gen.Emit(OpCodes.Ldloc, locInstance); 1065gen.Emit(OpCodes.Ldarg_0); 1070gen.Emit(GetMethodCallOpCode(miCanDeferLoad), miCanDeferLoad); 1073Label labEndDeferLoad = gen.DefineLabel(); 1074gen.Emit(OpCodes.Brfalse, labEndDeferLoad); 1092gen.MarkLabel(labEndDeferLoad); 1113Label labExit = gen.DefineLabel(); 1118gen.Emit(OpCodes.Ldloc, locStoreInMember); 1120gen.Emit(OpCodes.Ceq); 1121gen.Emit(OpCodes.Brtrue, labExit); 1125LocalBuilder locValue = gen.DeclareLocal(memberType); 1127gen.Emit(OpCodes.Stloc, locValue); 1130gen.Emit(OpCodes.Ldloc, locStoreInMember); 1132gen.Emit(OpCodes.Ceq); 1133gen.Emit(OpCodes.Brtrue, labExit); 1137gen.Emit(OpCodes.Ldloc, locValue); 1140gen.MarkLabel(labExit); 1159Label labExit = gen.DefineLabel(); 1165gen.Emit(OpCodes.Ldloc, locStoreInMember); 1167gen.Emit(OpCodes.Ceq); 1168gen.Emit(OpCodes.Brtrue, labExit); 1173LocalBuilder locSource = gen.DeclareLocal(eType); 1174gen.Emit(OpCodes.Stloc, locSource); 1177gen.Emit(OpCodes.Ldloc, locStoreInMember); 1179gen.Emit(OpCodes.Ceq); 1180gen.Emit(OpCodes.Brtrue, labExit); 1185Label labFetch = gen.DefineLabel(); 1188gen.Emit(OpCodes.Ldnull); 1189gen.Emit(OpCodes.Ceq); 1190gen.Emit(OpCodes.Brfalse, labFetch); 1196gen.Emit(OpCodes.Newobj, ci); 1199gen.MarkLabel(labFetch); 1205gen.Emit(OpCodes.Ldloc, locSource); 1208gen.Emit(GetMethodCallOpCode(miSetSource), miSetSource); 1210gen.MarkLabel(labExit); 1221Label labExit = gen.DefineLabel(); 1227gen.Emit(OpCodes.Ldloc, locStoreInMember); 1229gen.Emit(OpCodes.Ceq); 1230gen.Emit(OpCodes.Brtrue, labExit); 1235LocalBuilder locSource = gen.DeclareLocal(eType); 1236gen.Emit(OpCodes.Stloc, locSource); 1239gen.Emit(OpCodes.Ldloc, locStoreInMember); 1241gen.Emit(OpCodes.Ceq); 1242gen.Emit(OpCodes.Brtrue, labExit); 1247Label labFetch = gen.DefineLabel(); 1250gen.Emit(OpCodes.Ldnull); 1251gen.Emit(OpCodes.Ceq); 1252gen.Emit(OpCodes.Brfalse, labFetch); 1258gen.Emit(OpCodes.Newobj, ci); 1261gen.MarkLabel(labFetch); 1267gen.Emit(OpCodes.Ldloc, locSource); 1270gen.Emit(GetMethodCallOpCode(miAssign), miAssign); 1272gen.MarkLabel(labExit); 1283Label labExit = gen.DefineLabel(); 1289gen.Emit(OpCodes.Ldloc, locStoreInMember); 1291gen.Emit(OpCodes.Ceq); 1292gen.Emit(OpCodes.Brtrue, labExit); 1300LocalBuilder locSource = gen.DeclareLocal(eType); 1301gen.Emit(OpCodes.Stloc, locSource); 1304gen.Emit(OpCodes.Ldloc, locStoreInMember); 1306gen.Emit(OpCodes.Ceq); 1307gen.Emit(OpCodes.Brtrue, labExit); 1311gen.Emit(OpCodes.Ldloc, locSource); 1314gen.Emit(OpCodes.Newobj, ci); 1317gen.MarkLabel(labExit); 1322gen.Emit(OpCodes.Ldloca, loc); 1325gen.Emit(OpCodes.Ldloc, loc); 1354gen.Emit(OpCodes.Call, miCreateGroup); 1360gen.Emit(OpCodes.Ldarg_0); 1377gen.Emit(OpCodes.Ldloc, locInstance); 1383gen.Emit(GetMethodCallOpCode(miGLS), miGLS); 1388gen.Emit(OpCodes.Newarr, typeof(object)); 1392gen.Emit(OpCodes.Dup); 1402gen.Emit(GetMethodCallOpCode(miGLS), miGLS); 1423gen.Emit(OpCodes.Ldarg_0); // ObjectReaderBase 1428gen.Emit(OpCodes.Newarr, typeof(object)); 1432gen.Emit(OpCodes.Dup); 1446gen.Emit(OpCodes.Box, clrType); 1454gen.Emit(GetMethodCallOpCode(miExecute), miExecute); 1457gen.Emit(OpCodes.Castclass, actualType); 1466LocalBuilder locCount = gen.DeclareLocal(typeof(int)); 1467LocalBuilder locHasRows = gen.DeclareLocal(typeof(bool)); 1470LocalBuilder locList = gen.DeclareLocal(listType); 1474gen.Emit(OpCodes.Stloc, locCount); 1477gen.Emit(OpCodes.Ldloc, locCount); 1480gen.Emit(OpCodes.Newobj, ci); 1481gen.Emit(OpCodes.Stloc, locList); 1484gen.Emit(OpCodes.Ldc_I4_1); 1485gen.Emit(OpCodes.Stloc, locHasRows); 1488Label labLoopTest = gen.DefineLabel(); 1489Label labLoopTop = gen.DefineLabel(); 1490LocalBuilder locI = gen.DeclareLocal(typeof(int)); 1491gen.Emit(OpCodes.Ldc_I4_0); 1492gen.Emit(OpCodes.Stloc, locI); 1493gen.Emit(OpCodes.Br, labLoopTest); 1495gen.MarkLabel(labLoopTop); 1499gen.Emit(OpCodes.Ldloc, locI); 1500gen.Emit(OpCodes.Ldc_I4_0); 1501gen.Emit(OpCodes.Cgt); 1502gen.Emit(OpCodes.Ldloc, locHasRows); 1503gen.Emit(OpCodes.And); 1504Label labNext = gen.DefineLabel(); 1505gen.Emit(OpCodes.Brfalse, labNext); 1508gen.Emit(OpCodes.Ldarg_0); 1512gen.Emit(GetMethodCallOpCode(miRead), miRead); 1513gen.Emit(OpCodes.Stloc, locHasRows); 1515gen.MarkLabel(labNext); 1517Label labNext2 = gen.DefineLabel(); 1518gen.Emit(OpCodes.Ldloc, locHasRows); 1519gen.Emit(OpCodes.Brfalse, labNext2); 1520gen.Emit(OpCodes.Ldloc, locList); 1524gen.Emit(GetMethodCallOpCode(miAdd), miAdd); 1526gen.MarkLabel(labNext2); 1529gen.Emit(OpCodes.Ldloc, locI); 1530gen.Emit(OpCodes.Ldc_I4_1); 1531gen.Emit(OpCodes.Add); 1532gen.Emit(OpCodes.Stloc, locI); 1536gen.MarkLabel(labLoopTest); 1537gen.Emit(OpCodes.Ldloc, locI); 1538gen.Emit(OpCodes.Ldloc, locCount); 1539gen.Emit(OpCodes.Clt); 1540gen.Emit(OpCodes.Ldloc, locHasRows); 1541gen.Emit(OpCodes.And); 1542gen.Emit(OpCodes.Brtrue, labLoopTop); 1545gen.Emit(OpCodes.Ldloc, locList); 1580gen.Emit(OpCodes.Box, actualType); 1583gen.Emit(OpCodes.Unbox_Any, expectedType); 1589gen.Emit(OpCodes.Castclass, expectedType); 1602gen.Emit(OpCodes.Call, miCast); 1609gen.Emit(OpCodes.Call, miConvert); 1617gen.Emit(OpCodes.Call, miFirst); 1624gen.Emit(OpCodes.Newobj, ci); 1630LocalBuilder loc = gen.DeclareLocal(actualType); 1631gen.Emit(OpCodes.Stloc, loc); 1632gen.Emit(OpCodes.Ldloca, loc); 1647gen.Emit(OpCodes.Newobj, ci); 1653gen.Emit(OpCodes.Call, miFirst); 1656gen.Emit(OpCodes.Newobj, ci); 1669gen.Emit(OpCodes.Call, miAsQueryable); 1671gen.Emit(OpCodes.Castclass, expectedType); 1687gen.Emit(OpCodes.Call, miAsQueryable); 1689gen.Emit(OpCodes.Castclass, expectedType); 1703gen.Emit(OpCodes.Call, miCreateOrderedEnumerable); 1714LocalBuilder locSeq = gen.DeclareLocal(actualType); 1715gen.Emit(OpCodes.Stloc, locSeq); 1719gen.Emit(OpCodes.Newobj, ci); 1720LocalBuilder locEs = gen.DeclareLocal(expectedType); 1721gen.Emit(OpCodes.Stloc, locEs); 1723gen.Emit(OpCodes.Ldloc, locEs); 1724gen.Emit(OpCodes.Ldloc, locSeq); 1727gen.Emit(GetMethodCallOpCode(miAssign), miAssign); 1729gen.Emit(OpCodes.Ldloc, locEs); 1740gen.Emit(OpCodes.Newobj, ci); 1750gen.Emit(OpCodes.Call, miToArray); 1763Label labZero = gen.DefineLabel(); 1764Label labExit = gen.DefineLabel(); 1765gen.Emit(OpCodes.Ldc_I4_0); 1766gen.Emit(OpCodes.Ceq); 1767gen.Emit(OpCodes.Brtrue_S, labZero); 1768gen.Emit(OpCodes.Ldc_I4_1); 1769gen.Emit(OpCodes.Br_S, labExit); 1770gen.MarkLabel(labZero); 1771gen.Emit(OpCodes.Ldc_I4_0); 1772gen.MarkLabel(labExit); 1778gen.Emit(OpCodes.Box, actualType); 1780gen.Emit(OpCodes.Ldtoken, expectedType); 1783gen.Emit(OpCodes.Call, miGetTypeFromHandle); 1786gen.Emit(OpCodes.Call, miChangeType); 1788gen.Emit(OpCodes.Unbox_Any, expectedType); 1791gen.Emit(OpCodes.Castclass, expectedType); 1811Label labNotDefined = gen.DefineLabel(); 1812Label labExit = gen.DefineLabel(); 1813LocalBuilder locOrdinal = gen.DeclareLocal(typeof(int)); 1819gen.Emit(OpCodes.Stloc, locOrdinal); 1822gen.Emit(OpCodes.Ldloc, locOrdinal); 1824gen.Emit(OpCodes.Clt); 1825gen.Emit(OpCodes.Brtrue, labNotDefined); 1829gen.Emit(OpCodes.Br_S, labExit); 1832gen.MarkLabel(labNotDefined); 1835gen.MarkLabel(labExit); 1845Label labIsNull = gen.DefineLabel(); 1846Label labExit = gen.DefineLabel(); 1847Label labReadFromBuffer = gen.DefineLabel(); 1851gen.Emit(OpCodes.Ldnull); 1852gen.Emit(OpCodes.Ceq); 1853gen.Emit(OpCodes.Brfalse, labReadFromBuffer); 1859gen.Emit(OpCodes.Ldloc, locOrdinal); 1862gen.Emit(GetMethodCallOpCode(this.compiler.miDRisDBNull), this.compiler.miDRisDBNull); 1863gen.Emit(OpCodes.Brtrue, labIsNull); 1868gen.Emit(OpCodes.Ldloc, locOrdinal); 1871gen.Emit(GetMethodCallOpCode(readerMethod), readerMethod); 1873gen.Emit(OpCodes.Br_S, labExit); 1876gen.MarkLabel(labReadFromBuffer); 1881gen.Emit(OpCodes.Ldloc, locOrdinal); 1884gen.Emit(GetMethodCallOpCode(this.compiler.miBRisDBNull), this.compiler.miBRisDBNull); 1885gen.Emit(OpCodes.Brtrue, labIsNull); 1890gen.Emit(OpCodes.Ldloc, locOrdinal); 1893gen.Emit(GetMethodCallOpCode(bufferMethod), bufferMethod); 1895gen.Emit(OpCodes.Br_S, labExit); 1898gen.MarkLabel(labIsNull); 1901gen.MarkLabel(labExit); 1905LocalBuilder locDiscriminator = gen.DeclareLocal(scc.Expression.ClrType); 1907gen.Emit(OpCodes.Stloc, locDiscriminator); 1909Label labNext = gen.DefineLabel(); 1910Label labEnd = gen.DefineLabel(); 1913gen.MarkLabel(labNext); 1914labNext = gen.DefineLabel(); 1918gen.Emit(OpCodes.Ldloc, locDiscriminator); 1921gen.Emit(OpCodes.Brfalse, labNext); 1929gen.Emit(OpCodes.Br, labEnd); 1931gen.MarkLabel(labEnd); 1937LocalBuilder locDiscriminator = gen.DeclareLocal(stc.Discriminator.ClrType); 1939gen.Emit(OpCodes.Stloc, locDiscriminator); 1941Label labNext = gen.DefineLabel(); 1942Label labEnd = gen.DefineLabel(); 1947gen.MarkLabel(labNext); 1948labNext = gen.DefineLabel(); 1952gen.Emit(OpCodes.Ldloc, locDiscriminator); 1957gen.Emit(OpCodes.Brfalse, labNext); 1964gen.Emit(OpCodes.Br, labEnd); 1966gen.MarkLabel(labNext); 1970gen.MarkLabel(labEnd); 1978LocalBuilder locDiscriminator = gen.DeclareLocal(dt.Discriminator.ClrType); 1980gen.Emit(OpCodes.Stloc, locDiscriminator); 1989Label labNext = gen.DefineLabel(); 1990Label labEnd = gen.DefineLabel(); 1997gen.Emit(OpCodes.Ldloc, locDiscriminator); 2001gen.Emit(OpCodes.Brfalse, labNext); 2004gen.Emit(OpCodes.Br, labEnd); 2006gen.MarkLabel(labNext); 2007labNext = gen.DefineLabel(); 2010gen.MarkLabel(labNext); 2018gen.MarkLabel(labEnd); 2024Label labNext = gen.DefineLabel(); 2025Label labEnd = gen.DefineLabel(); 2028gen.MarkLabel(labNext); 2029labNext = gen.DefineLabel(); 2035gen.Emit(OpCodes.Ceq); 2036gen.Emit(OpCodes.Brtrue, labNext); 2039gen.Emit(OpCodes.Br, labEnd); 2041gen.MarkLabel(labNext); 2045gen.MarkLabel(labEnd); 2055LocalBuilder locLeft = gen.DeclareLocal(type); 2056LocalBuilder locRight = gen.DeclareLocal(type); 2057gen.Emit(OpCodes.Stloc, locRight); 2058gen.Emit(OpCodes.Stloc, locLeft); 2059gen.Emit(OpCodes.Ldloc, locLeft); 2060gen.Emit(OpCodes.Box, type); 2061gen.Emit(OpCodes.Ldloc, locRight); 2062gen.Emit(OpCodes.Box, type); 2066gen.Emit(GetMethodCallOpCode(miEquals), miEquals); 2069gen.Emit(OpCodes.Ceq); 2081LocalBuilder loc = gen.DeclareLocal(type); 2082gen.Emit(OpCodes.Ldloca, loc); 2083gen.Emit(OpCodes.Initobj, type); 2084gen.Emit(OpCodes.Ldloc, loc); 2087gen.Emit(OpCodes.Ldtoken, type); 2088gen.Emit(OpCodes.Call, typeof(Type).GetMethod( 2095gen.Emit(OpCodes.Call, mi); 2096gen.Emit(OpCodes.Throw); 2100gen.Emit(OpCodes.Ldnull); 2143gen.Emit(OpCodes.Call, mi); 2148gen.Emit(OpCodes.Call, mi); 2153gen.Emit(OpCodes.Call, mi); 2160gen.Emit(OpCodes.Ldelem_Ref); 2162gen.Emit(OpCodes.Castclass, varType); 2164gen.Emit(OpCodes.Ldfld, fi); 2168gen.Emit(OpCodes.Ldelem_Ref); 2170gen.Emit(OpCodes.Castclass, type); 2193gen.Emit(OpCodes.Stfld, fi); 2199gen.Emit(GetMethodCallOpCode(meth), meth); 2206gen.Emit(OpCodes.Ldfld, fi); 2211gen.Emit(GetMethodCallOpCode(meth), meth); 2226gen.Emit(OpCodes.Stelem, type); 2234gen.Emit(OpCodes.Stelem_I1); 2238gen.Emit(OpCodes.Stelem_I2); 2242gen.Emit(OpCodes.Stelem_I4); 2246gen.Emit(OpCodes.Stelem_I8); 2249gen.Emit(OpCodes.Stelem_R4); 2252gen.Emit(OpCodes.Stelem_R8); 2256gen.Emit(OpCodes.Stelem, type); 2259gen.Emit(OpCodes.Stelem_Ref); 2301gen.Emit(OpCodes.Ldelem_I4); 2329LocalBuilder loc = gen.DeclareLocal(type); 2330gen.Emit(OpCodes.Ldloca, loc); 2331gen.Emit(OpCodes.Initobj, type); 2332gen.Emit(OpCodes.Ldloc, loc); 2335gen.Emit(OpCodes.Ldnull); 2346gen.Emit(OpCodes.Conv_I1); 2350gen.Emit(OpCodes.Conv_I2); 2356gen.Emit(OpCodes.Ldc_I8, (Int64)value); 2359gen.Emit(OpCodes.Ldc_R4, (float)value); 2362gen.Emit(OpCodes.Ldc_R8, (double)value); 2376gen.Emit(OpCodes.Ldc_I4_0); 2379gen.Emit(OpCodes.Ldc_I4_1); 2382gen.Emit(OpCodes.Ldc_I4_2); 2385gen.Emit(OpCodes.Ldc_I4_3); 2388gen.Emit(OpCodes.Ldc_I4_4); 2391gen.Emit(OpCodes.Ldc_I4_5); 2394gen.Emit(OpCodes.Ldc_I4_6); 2397gen.Emit(OpCodes.Ldc_I4_7); 2400gen.Emit(OpCodes.Ldc_I4_8); 2404gen.Emit(OpCodes.Ldc_I4_M1); 2407gen.Emit(OpCodes.Ldc_I4_S, (sbyte)value); 2410gen.Emit(OpCodes.Ldc_I4, value);