src/java.base/share/native/libjli/java.c
changeset 55189 fdaf7287ea3a
parent 54543 4fc566b7a9c0
child 55193 5f9ef936707c
--- 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.