--- a/src/java.base/share/native/libjli/java.c Thu May 30 09:23:14 2019 -0700
+++ b/src/java.base/share/native/libjli/java.c Thu May 30 11:52:23 2019 -0700
@@ -1169,13 +1169,13 @@
* Passing on splash screen info in environment variables
*/
if (splash_file_name && !headlessflag) {
- char* splash_file_entry = JLI_MemAlloc(JLI_StrLen(SPLASH_FILE_ENV_ENTRY "=")+JLI_StrLen(splash_file_name)+1);
+ splash_file_entry = JLI_MemAlloc(JLI_StrLen(SPLASH_FILE_ENV_ENTRY "=")+JLI_StrLen(splash_file_name)+1);
JLI_StrCpy(splash_file_entry, SPLASH_FILE_ENV_ENTRY "=");
JLI_StrCat(splash_file_entry, splash_file_name);
putenv(splash_file_entry);
}
if (splash_jar_name && !headlessflag) {
- char* splash_jar_entry = JLI_MemAlloc(JLI_StrLen(SPLASH_JAR_ENV_ENTRY "=")+JLI_StrLen(splash_jar_name)+1);
+ splash_jar_entry = JLI_MemAlloc(JLI_StrLen(SPLASH_JAR_ENV_ENTRY "=")+JLI_StrLen(splash_jar_name)+1);
JLI_StrCpy(splash_jar_entry, SPLASH_JAR_ENV_ENTRY "=");
JLI_StrCat(splash_jar_entry, splash_jar_name);
putenv(splash_jar_entry);
@@ -2241,6 +2241,11 @@
if (file_name == NULL){
return;
}
+
+ if (!DoSplashInit()) {
+ goto exit;
+ }
+
maxScaledImgNameLength = DoSplashGetScaledImgNameMaxPstfixLen(file_name);
scaled_splash_name = JLI_MemAlloc(
@@ -2261,13 +2266,13 @@
jar_name, file_name, &data_size);
}
if (image_data) {
- DoSplashInit();
DoSplashSetScaleFactor(scale_factor);
DoSplashLoadMemory(image_data, data_size);
JLI_MemFree(image_data);
+ } else {
+ DoSplashClose();
}
} else {
- DoSplashInit();
if (isImageScaled) {
DoSplashSetScaleFactor(scale_factor);
DoSplashLoadFile(scaled_splash_name);
@@ -2279,6 +2284,7 @@
DoSplashSetFileJarName(file_name, jar_name);
+ exit:
/*
* Done with all command line processing and potential re-execs so
* clean up the environment.