|
|
|
|
@ -703,9 +703,24 @@ namespace Mono.Cecil {
@@ -703,9 +703,24 @@ namespace Mono.Cecil {
|
|
|
|
|
types.Add (type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (image.HasTable (Table.MethodPtr) || image.HasTable (Table.FieldPtr)) |
|
|
|
|
CompleteTypes (); |
|
|
|
|
|
|
|
|
|
return types; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void CompleteTypes () |
|
|
|
|
{ |
|
|
|
|
var types = metadata.Types; |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < types.Length; i++) { |
|
|
|
|
var type = types [i]; |
|
|
|
|
|
|
|
|
|
InitializeCollection (type.Fields); |
|
|
|
|
InitializeCollection (type.Methods); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void InitializeTypeDefinitions () |
|
|
|
|
{ |
|
|
|
|
if (metadata.Types != null) |
|
|
|
|
@ -2560,10 +2575,8 @@ namespace Mono.Cecil {
@@ -2560,10 +2575,8 @@ namespace Mono.Cecil {
|
|
|
|
|
scope = metadata.AssemblyReferences [(int) token.RID - 1]; |
|
|
|
|
break; |
|
|
|
|
case TokenType.File: |
|
|
|
|
InitializeModuleReferences (); |
|
|
|
|
scope = GetModuleReferenceFromFile (token); |
|
|
|
|
if (scope == null) |
|
|
|
|
throw new NotSupportedException (); |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
throw new NotSupportedException (); |
|
|
|
|
@ -2582,16 +2595,15 @@ namespace Mono.Cecil {
@@ -2582,16 +2595,15 @@ namespace Mono.Cecil {
|
|
|
|
|
var file_name = ReadString (); |
|
|
|
|
var modules = module.ModuleReferences; |
|
|
|
|
|
|
|
|
|
ModuleReference reference = null; |
|
|
|
|
ModuleReference reference; |
|
|
|
|
for (int i = 0; i < modules.Count; i++) { |
|
|
|
|
var module_reference = modules [i]; |
|
|
|
|
if (module_reference.Name != file_name) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
reference = module_reference; |
|
|
|
|
break; |
|
|
|
|
reference = modules [i]; |
|
|
|
|
if (reference.Name == file_name) |
|
|
|
|
return reference; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
reference = new ModuleReference (file_name); |
|
|
|
|
modules.Add (reference); |
|
|
|
|
return reference; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|