+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Mono.Cecil</RootNamespace>
- <AssemblyName>Mono.Cecil</AssemblyName>
- <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- <SignAssembly>true</SignAssembly>
- <AssemblyOriginatorKeyFile>mono.snk</AssemblyOriginatorKeyFile>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <ItemGroup>
- <Compile Include="Mono.Cecil.Cil\Code.cs" />
- <Compile Include="Mono.Cecil.Cil\CodeWriter.cs" />
- <Compile Include="Mono.Cecil.Cil\CodeReader.cs" />
- <Compile Include="Mono.Cecil.Cil\Document.cs" />
- <Compile Include="Mono.Cecil.Cil\ExceptionHandler.cs" />
- <Compile Include="Mono.Cecil.Cil\ILProcessor.cs" />
- <Compile Include="Mono.Cecil.Cil\Instruction.cs" />
- <Compile Include="Mono.Cecil.Cil\MethodBody.cs" />
- <Compile Include="Mono.Cecil.Cil\OpCode.cs" />
- <Compile Include="Mono.Cecil.Cil\OpCodes.cs" />
- <Compile Include="Mono.Cecil.Cil\SequencePoint.cs" />
- <Compile Include="Mono.Cecil.Cil\Symbols.cs" />
- <Compile Include="Mono.Cecil.Cil\VariableDefinition.cs" />
- <Compile Include="Mono.Cecil.Cil\VariableReference.cs" />
- <Compile Include="Mono.Cecil.Metadata\BlobHeap.cs" />
- <Compile Include="Mono.Cecil.Metadata\Buffers.cs" />
- <Compile Include="Mono.Cecil.Metadata\CodedIndex.cs" />
- <Compile Include="Mono.Cecil.Metadata\ElementType.cs" />
- <Compile Include="Mono.Cecil.Metadata\GuidHeap.cs" />
- <Compile Include="Mono.Cecil.Metadata\Heap.cs" />
- <Compile Include="Mono.Cecil.Metadata\MetadataToken.cs" />
- <Compile Include="Mono.Cecil.Metadata\Row.cs" />
- <Compile Include="Mono.Cecil.Metadata\StringHeap.cs" />
- <Compile Include="Mono.Cecil.Metadata\TableHeap.cs" />
- <Compile Include="Mono.Cecil.Metadata\TokenType.cs" />
- <Compile Include="Mono.Cecil.Metadata\UserStringHeap.cs" />
- <Compile Include="Mono.Cecil.Metadata\Utilities.cs" />
- <Compile Include="Mono.Cecil.PE\BinaryStreamReader.cs" />
- <Compile Include="Mono.Cecil.PE\BinaryStreamWriter.cs" />
- <Compile Include="Mono.Cecil.PE\ByteBufferEqualityComparer.cs" />
- <Compile Include="Mono.Cecil.PE\ByteBuffer.cs" />
- <Compile Include="Mono.Cecil.PE\DataDirectory.cs" />
- <Compile Include="Mono.Cecil.PE\Image.cs" />
- <Compile Include="Mono.Cecil.PE\ImageReader.cs" />
- <Compile Include="Mono.Cecil.PE\ImageWriter.cs" />
- <Compile Include="Mono.Cecil.PE\Section.cs" />
- <Compile Include="Mono.Cecil.PE\TextMap.cs" />
- <Compile Include="Mono.Cecil\ArrayType.cs" />
- <Compile Include="Mono.Cecil\AssemblyDefinition.cs" />
- <Compile Include="Mono.Cecil\AssemblyFlags.cs" />
- <Compile Include="Mono.Cecil\AssemblyHashAlgorithm.cs" />
- <Compile Include="Mono.Cecil\AssemblyInfo.cs" />
- <Compile Include="Mono.Cecil\AssemblyLinkedResource.cs" />
- <Compile Include="Mono.Cecil\AssemblyNameDefinition.cs" />
- <Compile Include="Mono.Cecil\AssemblyNameReference.cs" />
- <Compile Include="Mono.Cecil\AssemblyReader.cs" />
- <Compile Include="Mono.Cecil\AssemblyWriter.cs" />
- <Compile Include="Mono.Cecil\BaseAssemblyResolver.cs" />
- <Compile Include="Mono.Cecil\CallSite.cs" />
- <Compile Include="Mono.Cecil\TypeParser.cs" />
- <Compile Include="Mono.Cecil\Import.cs" />
- <Compile Include="Mono.Collections.Generic\Collection.cs" />
- <Compile Include="Mono.Cecil\ExportedType.cs" />
- <Compile Include="Mono.Cecil\SecurityDeclaration.cs" />
- <Compile Include="Mono.Cecil\CustomAttribute.cs" />
- <Compile Include="Mono.Cecil\DefaultAssemblyResolver.cs" />
- <Compile Include="Mono.Cecil\FileAttributes.cs" />
- <Compile Include="Mono.Cecil\FunctionPointerType.cs" />
- <Compile Include="Mono.Cecil\GenericInstanceMethod.cs" />
- <Compile Include="Mono.Cecil\GenericInstanceType.cs" />
- <Compile Include="Mono.Cecil\GenericParameter.cs" />
- <Compile Include="Mono.Cecil\GenericParameterAttributes.cs" />
- <Compile Include="Mono.Cecil\IConstantProvider.cs" />
- <Compile Include="Mono.Cecil\ICustomAttributeProvider.cs" />
- <Compile Include="Mono.Cecil\IGenericInstance.cs" />
- <Compile Include="Mono.Cecil\IGenericParameterProvider.cs" />
- <Compile Include="Mono.Cecil\IMarshalInfoProvider.cs" />
- <Compile Include="Mono.Cecil\MarshalInfo.cs" />
- <Compile Include="Mono.Cecil\MetadataResolver.cs" />
- <Compile Include="Mono.Cecil\Modifiers.cs" />
- <Compile Include="Mono.Cecil\NativeType.cs" />
- <Compile Include="Mono.Cecil\PinnedType.cs" />
- <Compile Include="Mono.Cecil\MetadataSystem.cs" />
- <Compile Include="Mono.Cecil\IMethodSignature.cs" />
- <Compile Include="Mono.Cecil\ParameterDefinitionCollection.cs" />
- <Compile Include="Mono.Cecil\EmbeddedResource.cs" />
- <Compile Include="Mono.Cecil\EventAttributes.cs" />
- <Compile Include="Mono.Cecil\EventDefinition.cs" />
- <Compile Include="Mono.Cecil\EventReference.cs" />
- <Compile Include="Mono.Cecil\FieldAttributes.cs" />
- <Compile Include="Mono.Cecil\FieldDefinition.cs" />
- <Compile Include="Mono.Cecil\FieldReference.cs" />
- <Compile Include="Mono.Cecil\IMemberDefinition.cs" />
- <Compile Include="Mono.Cecil\LinkedResource.cs" />
- <Compile Include="Mono.Cecil\MemberReference.cs" />
- <Compile Include="Mono.Cecil\MethodAttributes.cs" />
- <Compile Include="Mono.Cecil\MethodCallingConvention.cs" />
- <Compile Include="Mono.Cecil\MethodDefinition.cs" />
- <Compile Include="Mono.Cecil\MethodImplAttributes.cs" />
- <Compile Include="Mono.Cecil\MethodReference.cs" />
- <Compile Include="Mono.Cecil\MethodReturnType.cs" />
- <Compile Include="Mono.Cecil\MethodSemanticsAttributes.cs" />
- <Compile Include="Mono.Cecil\MethodSpecification.cs" />
- <Compile Include="Mono.Cecil\ParameterAttributes.cs" />
- <Compile Include="Mono.Cecil\ParameterDefinition.cs" />
- <Compile Include="Mono.Cecil\ParameterReference.cs" />
- <Compile Include="Mono.Cecil\PInvokeAttributes.cs" />
- <Compile Include="Mono.Cecil\PInvokeInfo.cs" />
- <Compile Include="Mono.Cecil\PointerType.cs" />
- <Compile Include="Mono.Cecil\PropertyAttributes.cs" />
- <Compile Include="Mono.Cecil\PropertyDefinition.cs" />
- <Compile Include="Mono.Cecil\PropertyReference.cs" />
- <Compile Include="Mono.Cecil\ReferenceType.cs" />
- <Compile Include="Mono.Cecil\IMetadataScope.cs" />
- <Compile Include="Mono.Cecil\IMetadataTokenProvider.cs" />
- <Compile Include="Mono.Cecil\ManifestResourceAttributes.cs" />
- <Compile Include="Mono.Cecil\ModuleReference.cs" />
- <Compile Include="Mono.Cecil\MemberDefinitionCollection.cs" />
- <Compile Include="Mono.Cecil\ModuleDefinition.cs" />
- <Compile Include="Mono.Cecil\ModuleKind.cs" />
- <Compile Include="Mono.Cecil\Resource.cs" />
- <Compile Include="Mono.Cecil\SentinelType.cs" />
- <Compile Include="Mono.Cecil\TargetRuntime.cs" />
- <Compile Include="Mono.Cecil\TypeAttributes.cs" />
- <Compile Include="Mono.Cecil\TypeDefinition.cs" />
- <Compile Include="Mono.Cecil\TypeDefinitionCollection.cs" />
- <Compile Include="Mono.Cecil\TypeReference.cs" />
- <Compile Include="Mono.Cecil\TypeSpecification.cs" />
- <Compile Include="Mono.Cecil\TypeSystem.cs" />
- <Compile Include="Mono.Cecil\VariantType.cs" />
- <Compile Include="Mono.Collections.Generic\ReadOnlyCollection.cs" />
- <Compile Include="Mono.Security.Cryptography\CryptoConvert.cs" />
- <Compile Include="Mono.Security.Cryptography\CryptoService.cs" />
- <Compile Include="System.Runtime.CompilerServices\ExtensionAttribute.cs" />
- <Compile Include="Mono\Actions.cs" />
- <Compile Include="Mono\Empty.cs" />
- <Compile Include="Mono\Funcs.cs" />
- </ItemGroup>
- <ItemGroup>
- <Content Include="NOTES.txt" />
- </ItemGroup>
- <ItemGroup>
- <None Include="mono.snk" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project>
\ No newline at end of file
if (type != null)
return type;
- type = ReadTypeReference (rid);
- if (type != null)
- metadata.AddTypeReference (type);
-
- return type;
+ return ReadTypeReference (rid);
}
TypeReference ReadTypeReference (uint rid)
var scope_token = ReadMetadataToken (CodedIndex.ResolutionScope);
+ var name = ReadString ();
+ var @namespace = ReadString ();
+
+ var type = new TypeReference (
+ @namespace,
+ name,
+ module,
+ null);
+
+ type.token = new MetadataToken (TokenType.TypeRef, rid);
+
+ metadata.AddTypeReference (type);
+
if (scope_token.TokenType == TokenType.TypeRef) {
declaring_type = GetTypeDefOrRef (scope_token);
} else
scope = GetTypeReferenceScope (scope_token);
- var name = ReadString ();
- var @namespace = ReadString ();
-
- var type = new TypeReference (
- @namespace,
- name,
- module,
- scope);
-
+ type.scope = scope;
type.DeclaringType = declaring_type;
- type.token = new MetadataToken (TokenType.TypeRef, rid);
MetadataSystem.TryProcessPrimitiveType (type);
return null;
var reader = ReadSignature (ReadBlobIndex ());
- return reader.ReadTypeSignature ();
+ var type = reader.ReadTypeSignature ();
+ if (type.token.RID == 0)
+ type.token = new MetadataToken (TokenType.TypeSpec, rid);
+
+ return type;
}
SignatureReader ReadSignature (uint signature)
element = GetMethodSpecification (rid);
break;
default:
- throw new NotSupportedException ();
+ return null;
}
this.position = position;
{
var type = metadata.GetFieldDeclaringType (rid);
if (type == null)
- throw new NotSupportedException ();
+ return null;
InitializeCollection (type.Fields);
{
var type = metadata.GetMethodDeclaringType (rid);
if (type == null)
- throw new NotSupportedException ();
+ return null;
InitializeCollection (type.Methods);
if (!MoveTo (Table.MethodSpec, rid))
return null;
- var method = (MethodReference) LookupToken (
+ var element_method = (MethodReference) LookupToken (
ReadMetadataToken (CodedIndex.MethodDefOrRef));
var signature = ReadBlobIndex ();
- return ReadMethodSpecSignature (signature, method);
+ var method_spec = ReadMethodSpecSignature (signature, element_method);
+ method_spec.token = new MetadataToken (TokenType.MethodSpec, rid);
+ return method_spec;
}
MethodSpecification ReadMethodSpecSignature (uint signature, MethodReference method)
return member;
member = ReadMemberReference (rid);
- if (!member.ContainsGenericParameter)
+ if (member != null && !member.ContainsGenericParameter)
metadata.AddMemberReference (member);
return member;
}