src/share/bin/java.c

Print this page

        

*** 1814,1834 **** ShowSplashScreen() { const char *jar_name = getenv(SPLASH_JAR_ENV_ENTRY); const char *file_name = getenv(SPLASH_FILE_ENV_ENTRY); int data_size; ! void *image_data; if (jar_name) { ! image_data = JLI_JarUnpackFile(jar_name, file_name, &data_size); if (image_data) { DoSplashInit(); DoSplashLoadMemory(image_data, data_size); JLI_MemFree(image_data); } ! } else if (file_name) { DoSplashInit(); DoSplashLoadFile(file_name); } else { return; } DoSplashSetFileJarName(file_name, jar_name); --- 1814,1860 ---- ShowSplashScreen() { const char *jar_name = getenv(SPLASH_JAR_ENV_ENTRY); const char *file_name = getenv(SPLASH_FILE_ENV_ENTRY); int data_size; ! void *image_data = NULL; ! float scale_factor = 1; ! char *scaled_splash_name = NULL; ! ! if (file_name) { ! scaled_splash_name = DoSplashGetScaledImageName( ! jar_name, file_name, &scale_factor); if (jar_name) { ! ! if (scaled_splash_name) { ! image_data = JLI_JarUnpackFile( ! jar_name, scaled_splash_name, &data_size); ! } ! ! if (!image_data) { ! scale_factor = 1; ! image_data = JLI_JarUnpackFile( ! jar_name, file_name, &data_size); ! } if (image_data) { DoSplashInit(); + DoSplashSetScaleFactor(scale_factor); DoSplashLoadMemory(image_data, data_size); JLI_MemFree(image_data); } ! } else { DoSplashInit(); + if(scaled_splash_name){ + DoSplashSetScaleFactor(scale_factor); + DoSplashLoadFile(scaled_splash_name); + } else { DoSplashLoadFile(file_name); + } + } + if(scaled_splash_name){ + JLI_MemFree(scaled_splash_name); + } } else { return; } DoSplashSetFileJarName(file_name, jar_name);