4 writes to _ilg
System.Private.DataContractSerialization (4)
System\Runtime\Serialization\XmlFormatReaderGenerator.cs (4)
88_ilg = new CodeGenerator(); 180_ilg = GenerateCollectionReaderHelper(collectionContract, false /*isGetOnlyCollection*/); 205_ilg = GenerateCollectionReaderHelper(collectionContract, true /*isGetOnlyCollection*/); 214_ilg = new CodeGenerator();
265 references to _ilg
System.Private.DataContractSerialization (265)
System\Runtime\Serialization\XmlFormatReaderGenerator.cs (265)
92_ilg.BeginMethod("Read" + classContract.XmlName.Name + "FromXml", typeof(XmlFormatClassReaderDelegate), memberAccessFlag); 108_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 113objectId = _ilg.DeclareLocal(typeof(string)); 114_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 115_ilg.Stloc(objectId); 130_ilg.Call(_objectLocal, XmlFormatGeneratorStatics.OnDeserializationMethod, null); 136_ilg.Load(_objectLocal); 144_ilg.ConvertValue(_objectLocal.LocalType, typeof(DateTimeOffsetAdapter)); 145_ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetMethod); 146_ilg.ConvertValue(typeof(DateTimeOffset), _ilg.CurrentMethod.ReturnType); 150_ilg.ConvertValue(_objectLocal.LocalType, typeof(MemoryStreamAdapter)); 151_ilg.Call(XmlFormatGeneratorStatics.GetMemoryStreamMethod); 152_ilg.ConvertValue(typeof(System.IO.MemoryStream), _ilg.CurrentMethod.ReturnType); 156_ilg.ConvertValue(_objectLocal.LocalType, _ilg.CurrentMethod.ReturnType); 159return (XmlFormatClassReaderDelegate)_ilg.EndMethod(); 182_ilg.Load(_objectLocal); 183_ilg.ConvertValue(_objectLocal.LocalType, _ilg.CurrentMethod.ReturnType); 184return (XmlFormatCollectionReaderDelegate)_ilg.EndMethod(); 207return (XmlFormatGetOnlyCollectionReaderDelegate)_ilg.EndMethod(); 220_ilg.BeginMethod("Read" + collectionContract.XmlName.Name + "FromXml" + "IsGetOnly", typeof(XmlFormatGetOnlyCollectionReaderDelegate), memberAccessFlag); 224_ilg.BeginMethod("Read" + collectionContract.XmlName.Name + "FromXml" + string.Empty, typeof(XmlFormatCollectionReaderDelegate), memberAccessFlag); 239_collectionContractArg = _ilg.GetArg(4); 240return _ilg; 245_xmlReaderArg = _ilg.GetArg(0); 246_contextArg = _ilg.GetArg(1); 247_memberNamesArg = _ilg.GetArg(2); 248_memberNamespacesArg = _ilg.GetArg(3); 260_objectLocal = _ilg.DeclareLocal(type); 264_ilg.LoadMember(GetDBNullValueField()); 265_ilg.Stloc(_objectLocal); 271_ilg.Ldloca(_objectLocal); 272_ilg.InitObj(type); 276_ilg.New(classContract.GetNonAttributedTypeConstructor()!); 277_ilg.Stloc(_objectLocal); 282_ilg.Call(null, XmlFormatGeneratorStatics.GetUninitializedObjectMethod, DataContract.GetIdForInitialization(classContract)); 283_ilg.ConvertValue(typeof(object), type); 284_ilg.Stloc(_objectLocal); 299_ilg.LoadAddress(_objectLocal); 300_ilg.ConvertAddress(_objectLocal.LocalType, _objectType); 301_ilg.Load(_contextArg); 302_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 303_ilg.Call(classContract.OnDeserializing); 316_ilg.LoadAddress(_objectLocal); 317_ilg.ConvertAddress(_objectLocal.LocalType, _objectType); 318_ilg.Load(_contextArg); 319_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 320_ilg.Call(classContract.OnDeserialized); 337_ilg.Load(_contextArg); 338_ilg.LoadAddress(_objectLocal); 340_ilg.ConvertAddress(_objectLocal.LocalType, typeof(IObjectReference)); 342_ilg.Load(objectId); 343_ilg.Call(XmlFormatGeneratorStatics.GetRealObjectMethod); 344_ilg.ConvertValue(typeof(object), _ilg.CurrentMethod.ReturnType); 357LocalBuilder extensionDataLocal = _ilg.DeclareLocal(typeof(ExtensionDataObject)); 358_ilg.New(XmlFormatGeneratorStatics.ExtensionDataObjectCtor); 359_ilg.Store(extensionDataLocal); 367_ilg.Call(_objectLocal, extensionDataSetMethod, extensionDataLocal); 382_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, memberCount); 384LocalBuilder memberIndexLocal = _ilg.DeclareLocal(typeof(int), -1); 389LocalBuilder? requiredIndexLocal = hasRequiredMembers ? _ilg.DeclareLocal(typeof(int), firstRequiredMember) : null; 391object forReadElements = _ilg.For(null, null, null); 392_ilg.Call(null, XmlFormatGeneratorStatics.MoveToNextElementMethod, _xmlReaderArg); 393_ilg.IfFalseBreak(forReadElements); 395_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetMemberIndexWithRequiredMembersMethod, _xmlReaderArg, _memberNamesArg, _memberNamespacesArg, memberIndexLocal, requiredIndexLocal, extensionDataLocal); 397_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetMemberIndexMethod, _xmlReaderArg, _memberNamesArg, _memberNamespacesArg, memberIndexLocal, extensionDataLocal); 400Label[] memberLabels = _ilg.Switch(memberCount); 402_ilg.EndSwitch(); 406_ilg.Pop(); 408_ilg.EndFor(); 411_ilg.If(requiredIndexLocal!, Cmp.LessThan, memberCount); 412_ilg.Call(null, XmlFormatGeneratorStatics.ThrowRequiredMemberMissingExceptionMethod, _xmlReaderArg, memberIndexLocal, requiredIndexLocal, _memberNamesArg); 413_ilg.EndIf(); 431_ilg.Case(memberLabels[memberCount]); 438_ilg.Set(requiredIndexLocal!, nextRequiredIndex); 445_ilg.LoadAddress(_objectLocal); 446_ilg.LoadMember(dataMember.MemberInfo); 447value = _ilg.DeclareLocal(memberType); 448_ilg.Stloc(value); 449_ilg.Call(_contextArg, XmlFormatGeneratorStatics.StoreCollectionMemberInfoMethod, value); 454_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ResetCollectionMemberInfoMethod); 456_ilg.LoadAddress(_objectLocal); 457_ilg.ConvertAddress(_objectLocal.LocalType, _objectType); 458_ilg.Ldloc(value); 459_ilg.StoreMember(dataMember.MemberInfo); 462_ilg.Set(memberIndexLocal, memberCount); 464_ilg.EndCase(); 498_ilg.LoadAddress(_objectLocal); 499_ilg.ConvertAddress(_objectLocal.LocalType, _objectType); 500_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadSerializationInfoMethod, _xmlReaderArg, classContract.UnderlyingType); 501_ilg.Load(_contextArg); 502_ilg.LoadMember(XmlFormatGeneratorStatics.GetStreamingContextMethod); 503_ilg.Call(ctor); 510LocalBuilder value = _ilg.DeclareLocal(type); 522LocalBuilder objectId = _ilg.DeclareLocal(typeof(string)); 523_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadAttributesMethod, _xmlReaderArg); 524_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ReadIfNullOrRefMethod, _xmlReaderArg, type, DataContract.IsTypeSerializable(type)); 525_ilg.Stloc(objectId); 527_ilg.If(objectId, Cmp.EqualTo, Globals.NullObjectId); 530_ilg.LoadAddress(value); 531_ilg.InitObj(value.LocalType); 537_ilg.Load(null); 538_ilg.Stloc(value); 544_ilg.ElseIfIsEmptyString(objectId); 545_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 546_ilg.Stloc(objectId); 549_ilg.IfNotIsEmptyString(objectId); 551_ilg.EndIf(); 556value = _ilg.DeclareLocal(type); 561_ilg.Call(_xmlReaderArg, primitiveContract.XmlFormatReaderMethod); 562_ilg.Stloc(value); 564_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, value); 571_ilg.Else(); 576_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetExistingObjectMethod, objectId, type, name, ns); 577_ilg.ConvertValue(typeof(object), type); 578_ilg.Stloc(value); 580_ilg.EndIf(); 584_ilg.If(objectId, Cmp.NotEqualTo, Globals.NullObjectId); 586_ilg.EndIf(); 601_ilg.Load(_contextArg); 602_ilg.Load(_xmlReaderArg); 604_ilg.Load(DataContract.GetId(declaredType.TypeHandle)); 605_ilg.Ldtoken(declaredType); 606_ilg.Load(name); 607_ilg.Load(ns); 608_ilg.Call(XmlFormatGeneratorStatics.InternalDeserializeMethod); 611_ilg.Call(XmlFormatGeneratorStatics.UnboxPointer); 613_ilg.ConvertValue(typeof(object), type); 615_ilg.Stloc(value); 623_ilg.LoadAddress(outerValue); 624_ilg.Load(innerValue); 628_ilg.New(type.GetConstructor(new Type[] { innerType })!); 631_ilg.Call(outerType.GetConstructor(new Type[] { innerType })!); 671_objectLocal = _ilg.DeclareLocal(type); 676_ilg.Ldloca(_objectLocal); 677_ilg.InitObj(type); 681_ilg.New(constructor); 682_ilg.Stloc(_objectLocal); 683_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 687LocalBuilder size = _ilg.DeclareLocal(typeof(int)); 688_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetArraySizeMethod); 689_ilg.Stloc(size); 691LocalBuilder objectId = _ilg.DeclareLocal(typeof(string)); 692_ilg.Call(_contextArg, XmlFormatGeneratorStatics.GetObjectIdMethod); 693_ilg.Stloc(objectId); 699_ilg.IfNot(); 702_ilg.If(size, Cmp.EqualTo, -1); 707growingCollection = _ilg.DeclareLocal(type); 708_ilg.NewArray(itemType, 32); 709_ilg.Stloc(growingCollection); 711LocalBuilder i = _ilg.DeclareLocal(typeof(int)); 712object forLoop = _ilg.For(i, 0, int.MaxValue); 714_ilg.If(); 715_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 721_ilg.Call(null, ensureArraySizeMethod, growingCollection, i); 722_ilg.Stloc(growingCollection); 723_ilg.StoreArrayElement(growingCollection, i, value); 727_ilg.Else(); 729_ilg.If(); 730_ilg.Break(forLoop); 731_ilg.Else(); 733_ilg.EndIf(); 734_ilg.EndIf(); 736_ilg.EndFor(); 740_ilg.Call(null, trimArraySizeMethod, growingCollection, i); 741_ilg.Stloc(_objectLocal); 742_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, _objectLocal); 744_ilg.Else(); 746_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, size); 749_ilg.NewArray(itemType, size); 750_ilg.Stloc(_objectLocal); 751_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 753LocalBuilder j = _ilg.DeclareLocal(typeof(int)); 754_ilg.For(j, 0, size); 756_ilg.If(); 759_ilg.StoreArrayElement(_objectLocal, j, itemValue); 762_ilg.Else(); 764_ilg.EndIf(); 765_ilg.EndFor(); 766_ilg.Call(_contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, _xmlReaderArg, size, _memberNamesArg, _memberNamespacesArg); 767_ilg.EndIf(); 771_ilg.Else(); 772_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectWithIdMethod, objectId, _objectLocal); 773_ilg.EndIf(); 787_objectLocal = _ilg.DeclareLocal(type); 788_ilg.Load(_contextArg); 789_ilg.LoadMember(XmlFormatGeneratorStatics.GetCollectionMemberMethod); 790_ilg.ConvertValue(typeof(object), type); 791_ilg.Stloc(_objectLocal); 795_ilg.If(); 796_ilg.If(_objectLocal, Cmp.EqualTo, null); 797_ilg.Call(null, XmlFormatGeneratorStatics.ThrowNullValueReturnedForGetOnlyCollectionExceptionMethod, type); 799_ilg.Else(); 800LocalBuilder size = _ilg.DeclareLocal(typeof(int)); 803_ilg.Load(_objectLocal); 804_ilg.Call(XmlFormatGeneratorStatics.GetArrayLengthMethod); 805_ilg.Stloc(size); 808_ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal); 810LocalBuilder i = _ilg.DeclareLocal(typeof(int)); 811object forLoop = _ilg.For(i, 0, int.MaxValue); 813_ilg.If(); 814_ilg.Call(_contextArg, XmlFormatGeneratorStatics.IncrementItemCountMethod, 1); 818_ilg.If(size, Cmp.EqualTo, i); 819_ilg.Call(null, XmlFormatGeneratorStatics.ThrowArrayExceededSizeExceptionMethod, size, type); 820_ilg.Else(); 821_ilg.StoreArrayElement(_objectLocal, i, value); 822_ilg.EndIf(); 826_ilg.Else(); 828_ilg.If(); 829_ilg.Break(forLoop); 830_ilg.Else(); 832_ilg.EndIf(); 833_ilg.EndIf(); 834_ilg.EndFor(); 835_ilg.Call(_contextArg, XmlFormatGeneratorStatics.CheckEndOfArrayMethod, _xmlReaderArg, size, _memberNamesArg, _memberNamespacesArg); 837_ilg.EndIf(); 838_ilg.EndIf(); 880_ilg.Load(_xmlReaderArg); 881_ilg.Load(_contextArg); 882_ilg.Load(_memberNamesArg); 883_ilg.Load(_memberNamespacesArg); 884_ilg.Load(size); 885_ilg.Ldloca(_objectLocal); 886_ilg.Call(typeof(XmlReaderDelegator).GetMethod(readArrayMethod, Globals.ScanAllMembers)!); 898_ilg.Call(_contextArg, XmlFormatGeneratorStatics.ResetAttributesMethod); 899LocalBuilder value = _ilg.DeclareLocal(itemType); 900_ilg.Load(_collectionContractArg); 901_ilg.Call(XmlFormatGeneratorStatics.GetItemContractMethod); 902_ilg.Load(_xmlReaderArg); 903_ilg.Load(_contextArg); 904_ilg.Call(XmlFormatGeneratorStatics.ReadXmlValueMethod); 905_ilg.ConvertValue(typeof(object), itemType); 906_ilg.Stloc(value); 930LocalBuilder pairKey = _ilg.DeclareLocal(keyMember.MemberType); 931LocalBuilder pairValue = _ilg.DeclareLocal(valueMember.MemberType); 932_ilg.LoadAddress(value); 933_ilg.LoadMember(keyMember.MemberInfo); 934_ilg.Stloc(pairKey); 935_ilg.LoadAddress(value); 936_ilg.LoadMember(valueMember.MemberInfo); 937_ilg.Stloc(pairValue); 939_ilg.Call(collection, collectionContract.AddMethod, pairKey, pairValue); 941_ilg.Pop(); 945_ilg.Call(collection, collectionContract.AddMethod, value); 947_ilg.Pop(); 954_ilg.If(); 955_ilg.Call(_contextArg, XmlFormatGeneratorStatics.SkipUnknownElementMethod, _xmlReaderArg); 956_ilg.Dec(iterator); 957_ilg.Else(); 959_ilg.EndIf(); 964_ilg.Call(_xmlReaderArg, XmlFormatGeneratorStatics.IsStartElementMethod2, nameArg, nsArg); 969_ilg.Call(_xmlReaderArg, XmlFormatGeneratorStatics.IsStartElementMethod0); 974_ilg.Load(_xmlReaderArg); 975_ilg.LoadMember(XmlFormatGeneratorStatics.NodeTypeProperty); 976_ilg.Load(XmlNodeType.EndElement); 977_ilg.Ceq(); 982_ilg.Call(null, XmlFormatGeneratorStatics.CreateUnexpectedStateExceptionMethod, expectedState, _xmlReaderArg); 983_ilg.Throw(); 988_ilg.Load(msg); 994_ilg.New(XmlFormatGeneratorStatics.SerializationExceptionCtor); 995_ilg.Throw();