Imported Upstream version 4.8.0.309

Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-11-10 13:04:39 +00:00
parent ee1447783b
commit 94b2861243
4912 changed files with 390737 additions and 49310 deletions

View File

@@ -100,33 +100,34 @@ public class Program
static void RewriteAssembly (string assemblyLocation, Dictionary<string, string> resourcesStrings, CmdOptions options)
{
var readerParameters = new ReaderParameters { ReadSymbols = true };
var assembly = AssemblyDefinition.ReadAssembly (assemblyLocation, readerParameters);
foreach (var module in assembly.Modules) {
foreach (var type in module.GetTypes ()) {
foreach (var method in type.Methods) {
if (!method.HasBody)
continue;
foreach (var instr in method.Body.Instructions) {
if (instr.OpCode != OpCodes.Ldstr)
var readerParameters = new ReaderParameters { ReadSymbols = true, ReadWrite = true };
using (var assembly = AssemblyDefinition.ReadAssembly (assemblyLocation, readerParameters)) {
foreach (var module in assembly.Modules) {
foreach (var type in module.GetTypes ()) {
foreach (var method in type.Methods) {
if (!method.HasBody)
continue;
foreach (var instr in method.Body.Instructions) {
if (instr.OpCode != OpCodes.Ldstr)
continue;
string value;
if (resourcesStrings.TryGetValue ((string)instr.Operand, out value)) {
if (options.Verbose) {
Console.WriteLine ($"Replacing '{instr.Operand}' with '{value}'");
string value;
if (resourcesStrings.TryGetValue ((string)instr.Operand, out value)) {
if (options.Verbose) {
Console.WriteLine ($"Replacing '{instr.Operand}' with '{value}'");
}
instr.Operand = value;
}
instr.Operand = value;
}
}
}
}
}
var writerParameters = new WriterParameters { WriteSymbols = true };
assembly.Write (assemblyLocation, writerParameters);
var writerParameters = new WriterParameters { WriteSymbols = true };
assembly.Write (writerParameters);
}
}
static bool LoadGetResourceStrings (Dictionary<string, string> resourcesStrings, CmdOptions options)