- Added ModuleBuilder.__Save() to support -target:module option better.

- Changed ikvmc to use new ModuleBuilder.__Save() instead of workaround of deleting the manifest module after saving the assembly.
This commit is contained in:
jfrijters 2010-11-29 08:16:54 +00:00
Родитель 4e650270a5
Коммит 1410ece953
2 изменённых файлов: 8 добавлений и 4 удалений

Просмотреть файл

@ -558,10 +558,8 @@ namespace IKVM.Internal
if(targetIsModule) if(targetIsModule)
{ {
Tracer.Info(Tracer.Compiler, "CompilerClassLoader saving temp.$$$ in {0}", assemblyDir); Tracer.Info(Tracer.Compiler, "CompilerClassLoader saving {0} in {1}", assemblyFile, assemblyDir);
string manifestAssembly = "temp.$$$"; GetTypeWrapperFactory().ModuleBuilder.__Save(options.pekind, options.imageFileMachine);
assemblyBuilder.Save(manifestAssembly, options.pekind, options.imageFileMachine);
File.Delete(assemblyDir + manifestAssembly);
} }
else else
{ {

Просмотреть файл

@ -1154,6 +1154,12 @@ namespace IKVM.Reflection.Emit
{ {
get { return asm.mdStreamVersion; } get { return asm.mdStreamVersion; }
} }
public void __Save(PortableExecutableKinds portableExecutableKind, ImageFileMachine imageFileMachine)
{
FillAssemblyRefTable();
ModuleWriter.WriteModule(null, null, this, PEFileKinds.Dll, portableExecutableKind, imageFileMachine, unmanagedResources, 0);
}
} }
class ArrayMethod : MethodInfo class ArrayMethod : MethodInfo