You've already forked linux-packaging-mono
Imported Upstream version 5.20.0.208
Former-commit-id: 8fbf7dae6cd486bffb1fa6a52020e8eb23c570b1
This commit is contained in:
parent
5d930a31c6
commit
219eec173f
13
external/cecil/Mono.Cecil/AssemblyReader.cs
vendored
13
external/cecil/Mono.Cecil/AssemblyReader.cs
vendored
@@ -1119,11 +1119,14 @@ namespace Mono.Cecil {
|
||||
metadata.AddTypeReference (type);
|
||||
|
||||
if (scope_token.TokenType == TokenType.TypeRef) {
|
||||
declaring_type = GetTypeDefOrRef (scope_token);
|
||||
if (scope_token.RID != rid) {
|
||||
declaring_type = GetTypeDefOrRef (scope_token);
|
||||
|
||||
scope = declaring_type != null
|
||||
? declaring_type.Scope
|
||||
: module;
|
||||
scope = declaring_type != null
|
||||
? declaring_type.Scope
|
||||
: module;
|
||||
} else // obfuscated typeref row pointing to self
|
||||
scope = module;
|
||||
} else
|
||||
scope = GetTypeReferenceScope (scope_token);
|
||||
|
||||
@@ -3766,7 +3769,7 @@ namespace Mono.Cecil {
|
||||
if (length == 0)
|
||||
return string.Empty;
|
||||
|
||||
if (position + length >= buffer.Length)
|
||||
if (position + length > buffer.Length)
|
||||
return string.Empty;
|
||||
|
||||
var @string = Encoding.UTF8.GetString (buffer, position, length);
|
||||
|
||||
61
external/cecil/Mono.Cecil/AssemblyWriter.cs
vendored
61
external/cecil/Mono.Cecil/AssemblyWriter.cs
vendored
@@ -110,18 +110,25 @@ namespace Mono.Cecil {
|
||||
}
|
||||
#endif
|
||||
|
||||
using (var symbol_writer = GetSymbolWriter (module, fq_name, symbol_writer_provider, parameters)) {
|
||||
var metadata = new MetadataBuilder (module, fq_name, timestamp, symbol_writer_provider, symbol_writer);
|
||||
BuildMetadata (module, metadata);
|
||||
var metadata = new MetadataBuilder (module, fq_name, timestamp, symbol_writer_provider);
|
||||
try {
|
||||
module.metadata_builder = metadata;
|
||||
|
||||
var writer = ImageWriter.CreateWriter (module, metadata, stream);
|
||||
stream.value.SetLength (0);
|
||||
writer.WriteImage ();
|
||||
using (var symbol_writer = GetSymbolWriter (module, fq_name, symbol_writer_provider, parameters)) {
|
||||
metadata.SetSymbolWriter (symbol_writer);
|
||||
BuildMetadata (module, metadata);
|
||||
|
||||
var writer = ImageWriter.CreateWriter (module, metadata, stream);
|
||||
stream.value.SetLength (0);
|
||||
writer.WriteImage ();
|
||||
|
||||
#if !NET_CORE
|
||||
if (parameters.StrongNameKeyPair != null)
|
||||
CryptoService.StrongName (stream.value, writer, parameters.StrongNameKeyPair);
|
||||
if (parameters.StrongNameKeyPair != null)
|
||||
CryptoService.StrongName (stream.value, writer, parameters.StrongNameKeyPair);
|
||||
#endif
|
||||
}
|
||||
} finally {
|
||||
module.metadata_builder = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,10 +216,10 @@ namespace Mono.Cecil {
|
||||
|
||||
public sealed override void Sort ()
|
||||
{
|
||||
Array.Sort (rows, 0, length, this);
|
||||
MergeSort<TRow>.Sort (rows, 0, this.length, this);
|
||||
}
|
||||
|
||||
protected int Compare (uint x, uint y)
|
||||
protected static int Compare (uint x, uint y)
|
||||
{
|
||||
return x == y ? 0 : x > y ? 1 : -1;
|
||||
}
|
||||
@@ -796,7 +803,7 @@ namespace Mono.Cecil {
|
||||
|
||||
readonly internal ModuleDefinition module;
|
||||
readonly internal ISymbolWriterProvider symbol_writer_provider;
|
||||
readonly internal ISymbolWriter symbol_writer;
|
||||
internal ISymbolWriter symbol_writer;
|
||||
readonly internal TextMap text_map;
|
||||
readonly internal string fq_name;
|
||||
readonly internal uint timestamp;
|
||||
@@ -846,8 +853,6 @@ namespace Mono.Cecil {
|
||||
readonly TypeSpecTable typespec_table;
|
||||
readonly MethodSpecTable method_spec_table;
|
||||
|
||||
readonly bool portable_pdb;
|
||||
|
||||
internal MetadataBuilder metadata_builder;
|
||||
|
||||
readonly DocumentTable document_table;
|
||||
@@ -862,7 +867,7 @@ namespace Mono.Cecil {
|
||||
readonly Dictionary<ImportScopeRow, MetadataToken> import_scope_map;
|
||||
readonly Dictionary<string, MetadataToken> document_map;
|
||||
|
||||
public MetadataBuilder (ModuleDefinition module, string fq_name, uint timestamp, ISymbolWriterProvider symbol_writer_provider, ISymbolWriter symbol_writer)
|
||||
public MetadataBuilder (ModuleDefinition module, string fq_name, uint timestamp, ISymbolWriterProvider symbol_writer_provider)
|
||||
{
|
||||
this.module = module;
|
||||
this.text_map = CreateTextMap ();
|
||||
@@ -870,18 +875,6 @@ namespace Mono.Cecil {
|
||||
this.timestamp = timestamp;
|
||||
this.symbol_writer_provider = symbol_writer_provider;
|
||||
|
||||
if (symbol_writer == null && module.HasImage && module.Image.HasDebugTables ()) {
|
||||
symbol_writer = new PortablePdbWriter (this, module);
|
||||
}
|
||||
|
||||
this.symbol_writer = symbol_writer;
|
||||
|
||||
var pdb_writer = symbol_writer as IMetadataSymbolWriter;
|
||||
if (pdb_writer != null) {
|
||||
portable_pdb = true;
|
||||
pdb_writer.SetMetadata (this);
|
||||
}
|
||||
|
||||
this.code = new CodeWriter (this);
|
||||
this.data = new DataBuffer ();
|
||||
this.resources = new ResourceBuffer ();
|
||||
@@ -916,9 +909,6 @@ namespace Mono.Cecil {
|
||||
method_spec_map = new Dictionary<MethodSpecRow, MetadataToken> (row_equality_comparer);
|
||||
generic_parameters = new Collection<GenericParameter> ();
|
||||
|
||||
if (!portable_pdb)
|
||||
return;
|
||||
|
||||
this.document_table = GetTable<DocumentTable> (Table.Document);
|
||||
this.method_debug_information_table = GetTable<MethodDebugInformationTable> (Table.MethodDebugInformation);
|
||||
this.local_scope_table = GetTable<LocalScopeTable> (Table.LocalScope);
|
||||
@@ -937,7 +927,6 @@ namespace Mono.Cecil {
|
||||
this.module = module;
|
||||
this.text_map = new TextMap ();
|
||||
this.symbol_writer_provider = writer_provider;
|
||||
this.portable_pdb = true;
|
||||
|
||||
this.string_heap = new StringHeapBuffer ();
|
||||
this.guid_heap = new GuidHeapBuffer ();
|
||||
@@ -961,6 +950,14 @@ namespace Mono.Cecil {
|
||||
this.import_scope_map = new Dictionary<ImportScopeRow, MetadataToken> (row_equality_comparer);
|
||||
}
|
||||
|
||||
public void SetSymbolWriter (ISymbolWriter writer)
|
||||
{
|
||||
symbol_writer = writer;
|
||||
|
||||
if (symbol_writer == null && module.HasImage && module.Image.HasDebugTables ())
|
||||
symbol_writer = new PortablePdbWriter (this, module);
|
||||
}
|
||||
|
||||
TextMap CreateTextMap ()
|
||||
{
|
||||
var map = new TextMap ();
|
||||
@@ -1050,10 +1047,6 @@ namespace Mono.Cecil {
|
||||
|
||||
if (module.EntryPoint != null)
|
||||
entry_point = LookupToken (module.EntryPoint);
|
||||
|
||||
var pdb_writer = symbol_writer as IMetadataSymbolWriter;
|
||||
if (pdb_writer != null)
|
||||
pdb_writer.WriteModule ();
|
||||
}
|
||||
|
||||
void BuildAssembly ()
|
||||
|
||||
@@ -265,7 +265,7 @@ namespace Mono.Cecil {
|
||||
if (version.MajorRevision == 3300)
|
||||
path = Path.Combine (path, "v1.0.3705");
|
||||
else
|
||||
path = Path.Combine (path, "v1.0.5000.0");
|
||||
path = Path.Combine (path, "v1.1.4322");
|
||||
break;
|
||||
case 2:
|
||||
path = Path.Combine (path, "v2.0.50727");
|
||||
|
||||
@@ -180,6 +180,9 @@ namespace Mono.Cecil {
|
||||
|
||||
return debug_info ?? (debug_info = new MethodDebugInformation (this));
|
||||
}
|
||||
set {
|
||||
debug_info = value;
|
||||
}
|
||||
}
|
||||
|
||||
public bool HasPInvokeInfo {
|
||||
|
||||
2
external/cecil/Mono.Cecil/MethodReference.cs
vendored
2
external/cecil/Mono.Cecil/MethodReference.cs
vendored
@@ -183,7 +183,7 @@ namespace Mono.Cecil {
|
||||
|
||||
public static bool IsVarArg (this IMethodSignature self)
|
||||
{
|
||||
return (self.CallingConvention & MethodCallingConvention.VarArg) != 0;
|
||||
return self.CallingConvention == MethodCallingConvention.VarArg;
|
||||
}
|
||||
|
||||
public static int GetSentinelPosition (this IMethodSignature self)
|
||||
|
||||
11
external/cecil/Mono.Cecil/ModuleDefinition.cs
vendored
11
external/cecil/Mono.Cecil/ModuleDefinition.cs
vendored
@@ -283,8 +283,11 @@ namespace Mono.Cecil {
|
||||
TargetArchitecture architecture;
|
||||
ModuleAttributes attributes;
|
||||
ModuleCharacteristics characteristics;
|
||||
internal ushort linker_version = 8;
|
||||
Guid mvid;
|
||||
|
||||
internal ushort linker_version = 8;
|
||||
internal ushort subsystem_major = 4;
|
||||
internal ushort subsystem_minor = 0;
|
||||
internal uint timestamp;
|
||||
|
||||
internal AssemblyDefinition assembly;
|
||||
@@ -304,6 +307,10 @@ namespace Mono.Cecil {
|
||||
|
||||
internal Collection<CustomDebugInformation> custom_infos;
|
||||
|
||||
#if !READ_ONLY
|
||||
internal MetadataBuilder metadata_builder;
|
||||
#endif
|
||||
|
||||
public bool IsMain {
|
||||
get { return kind != ModuleKind.NetModule; }
|
||||
}
|
||||
@@ -616,6 +623,8 @@ namespace Mono.Cecil {
|
||||
this.attributes = image.Attributes;
|
||||
this.characteristics = image.Characteristics;
|
||||
this.linker_version = image.LinkerVersion;
|
||||
this.subsystem_major = image.SubSystemMajor;
|
||||
this.subsystem_minor = image.SubSystemMinor;
|
||||
this.file_name = image.FileName;
|
||||
this.timestamp = image.Timestamp;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user