void ProcessBody(MethodBody body)
{
var instructions = body.Instructions;
for (var i = 0; i < instructions.Count; i++)
{
var instruction = instructions[i];
if (instruction.OpCode == OpCodes.Stfld || instruction.OpCode == OpCodes.Ldfld)
{
var fieldReference = instruction.Operand as FieldReference;
if (fieldReference == null)
{
continue;
}
if (fieldReference.FieldType != volatileTypeFinder.VolatileReference)
{
continue;
}
instructions.Insert(i,Instruction.Create(OpCodes.Volatile));
i++;
}
}
}