Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2013-02-18 12:39:37 +0400
committerjfrijters <jfrijters>2013-02-18 12:39:37 +0400
commitdcb6658e5f78e184b795218014d09d23cdacab66 (patch)
tree7808538506479396b339f545c7313a299fb7e149
parente000e21824f8691ad0abac4561d5f37b8ed6343c (diff)
Don't include empty classes.jar.
-rw-r--r--ikvmc/CompilerClassLoader.cs19
1 files changed, 13 insertions, 6 deletions
diff --git a/ikvmc/CompilerClassLoader.cs b/ikvmc/CompilerClassLoader.cs
index 20cc2846..d8c69946 100644
--- a/ikvmc/CompilerClassLoader.cs
+++ b/ikvmc/CompilerClassLoader.cs
@@ -753,6 +753,7 @@ namespace IKVM.Internal
for (int i = 0; i < options.jars.Count; i++)
{
{
+ bool hasEntries = false;
MemoryStream mem = new MemoryStream();
using (ZipOutputStream zip = new ZipOutputStream(mem))
{
@@ -787,6 +788,7 @@ namespace IKVM.Internal
zip.PutNextEntry(zipEntry);
zip.Write(item.data, 0, item.data.Length);
zip.CloseEntry();
+ hasEntries = true;
}
if (stubs.Count != 0)
{
@@ -802,16 +804,21 @@ namespace IKVM.Internal
}
bw.Flush();
zip.CloseEntry();
+ hasEntries = true;
}
}
- mem = new MemoryStream(mem.ToArray());
- string name = options.jars[i].Name;
- if (options.targetIsModule)
+ // don't include empty classes.jar
+ if (i != options.classesJar || hasEntries)
{
- name = Path.GetFileNameWithoutExtension(name) + "-" + moduleBuilder.ModuleVersionId.ToString("N") + Path.GetExtension(name);
+ mem = new MemoryStream(mem.ToArray());
+ string name = options.jars[i].Name;
+ if (options.targetIsModule)
+ {
+ name = Path.GetFileNameWithoutExtension(name) + "-" + moduleBuilder.ModuleVersionId.ToString("N") + Path.GetExtension(name);
+ }
+ jarList.Add(name);
+ moduleBuilder.DefineManifestResource(name, mem, ResourceAttributes.Public);
}
- jarList.Add(name);
- moduleBuilder.DefineManifestResource(name, mem, ResourceAttributes.Public);
}
}
}