Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ EndFor()

void System.Xml.Serialization.CodeGenerator.EndFor ( )
inlinepackage

Definition at line 364 of file CodeGenerator.cs.

365 {
366 object obj = _blockStack.Pop();
367 ForState forState = obj as ForState;
368 if (forState.Index != null)
369 {
370 Ldloc(forState.Index);
371 Ldc(1);
372 Add();
373 Stloc(forState.Index);
374 MarkLabel(forState.TestLabel);
375 Ldloc(forState.Index);
376 Load(forState.End);
378 if (variableType.IsArray)
379 {
380 Ldlen();
381 }
382 else
383 {
384 MethodInfo method = typeof(ICollection).GetMethod("get_Count", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, Type.EmptyTypes);
385 Call(method);
386 }
387 Blt(forState.BeginLabel);
388 }
389 else
390 {
391 Br(forState.BeginLabel);
392 }
393 }

References System.Xml.Serialization.CodeGenerator._blockStack, System.Xml.Serialization.CodeGenerator.Add(), System.Reflection.Emit.Blt, System.Reflection.Emit.Br, System.Reflection.Emit.Call, System.Xml.Dictionary, System.Type.EmptyTypes, System.Xml.Serialization.CodeGenerator.GetVariableType(), System.Xml.Serialization.CodeGenerator.Ldc(), System.Xml.Serialization.CodeGenerator.Ldlen(), System.Reflection.Emit.Ldloc, System.Xml.Serialization.CodeGenerator.Load(), System.Xml.Serialization.CodeGenerator.MarkLabel(), System.obj, System.Collections.Generic.Stack< T >.Pop(), and System.Reflection.Emit.Stloc.

Referenced by System.Xml.Serialization.XmlSerializationWriterILGen.WriteArrayItems(), System.Xml.Serialization.XmlSerializationReaderILGen.WriteAttribute(), and System.Xml.Serialization.XmlSerializationWriterILGen.WriteMember().