use "lzma." prefix for LZMA-compressed embedded jars

Previously, we used "lzma:", which worked fine on Windows (where the
path separator is ";") but not on Unix-style OSes (where the path
separator is ":").  In the latter case, the VM would parse
"[lzma:bootJar]" as a path containing two elements, "[lzma" and
"bootJar]", which is not what was intended.  So now we use "lzma." as
the prefix, which works on all OSes.
This commit is contained in:
Joel Dice 2014-01-18 19:41:43 -07:00
parent c730a932e9
commit 66bd7e0814
2 changed files with 2 additions and 2 deletions

View File

@ -503,7 +503,7 @@ compress the jar before generating the object:
boot.jar.lzma boot-jar.o _binary_boot_jar_start _binary_boot_jar_end \
${platform} ${arch}
Note that you'll need to specify "-Xbootclasspath:[lzma:bootJar]"
Note that you'll need to specify "-Xbootclasspath:[lzma.bootJar]"
instead of "-Xbootclasspath:[bootJar]" in the next step if you've used
LZMA to compress the jar.

View File

@ -566,7 +566,7 @@ class BuiltinElement: public JarElement {
virtual void init() {
if (index == 0) {
if (s->success(s->load(&library, libraryName))) {
bool lzma = strncmp("lzma:", name, 5) == 0;
bool lzma = strncmp("lzma.", name, 5) == 0;
const char* symbolName = lzma ? name + 5 : name;
void* p = library->resolve(symbolName);