Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/cecil.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Mono.Cecil/AssemblyWriter.cs')
-rw-r--r--Mono.Cecil/AssemblyWriter.cs18
1 files changed, 12 insertions, 6 deletions
diff --git a/Mono.Cecil/AssemblyWriter.cs b/Mono.Cecil/AssemblyWriter.cs
index 5496cac..52c601c 100644
--- a/Mono.Cecil/AssemblyWriter.cs
+++ b/Mono.Cecil/AssemblyWriter.cs
@@ -2392,13 +2392,19 @@ namespace Mono.Cecil {
var method_info = ((MethodDefinition) provider).DebugInformation;
var signature = CreateSignatureWriter ();
- signature.WriteUInt32 ((uint) state_machine_scope.Start.Offset);
- var end_offset = state_machine_scope.End.IsEndOfMethod
- ? method_info.code_size
- : state_machine_scope.End.Offset;
+ var scopes = state_machine_scope.Scopes;
- signature.WriteUInt32 ((uint) (end_offset - state_machine_scope.Start.Offset));
+ for (int i = 0; i < scopes.Count; i++) {
+ var scope = scopes [i];
+ signature.WriteUInt32 ((uint) scope.Start.Offset);
+
+ var end_offset = scope.End.IsEndOfMethod
+ ? method_info.code_size
+ : scope.End.Offset;
+
+ signature.WriteUInt32 ((uint) (end_offset - scope.Start.Offset));
+ }
AddCustomDebugInformation (provider, state_machine_scope, signature);
}
@@ -2411,7 +2417,7 @@ namespace Mono.Cecil {
for (int i = 0; i < async_method.yields.Count; i++) {
signature.WriteUInt32 ((uint) async_method.yields [i].Offset);
signature.WriteUInt32 ((uint) async_method.resumes [i].Offset);
- signature.WriteCompressedUInt32 (async_method.move_next.MetadataToken.RID);
+ signature.WriteCompressedUInt32 (async_method.resume_methods [i].MetadataToken.RID);
}
AddCustomDebugInformation (provider, async_method, signature);