< prev index next >
src/java.base/share/native/libjli/java.c
Print this page
@@ -1818,20 +1818,28 @@
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;
-
+ size_t maxScaledImgNameLength = 0;
if (file_name == NULL){
return;
}
-
- scaled_splash_name = DoSplashGetScaledImageName(
- jar_name, file_name, &scale_factor);
+ //Max scaled Image file name length
+ maxScaledImgNameLength = JLI_StrLen(file_name) +
+ JLI_StrLen(".java-scale-200") + 1;
+
+ scaled_splash_name = JLI_MemAlloc(
+ maxScaledImgNameLength * sizeof(char));
+
+ memset(scaled_splash_name, '\0', maxScaledImgNameLength * sizeof(char));
+ DoSplashGetScaledImageName(jar_name, file_name,
+ &scale_factor,
+ scaled_splash_name, maxScaledImgNameLength);
if (jar_name) {
- if (scaled_splash_name) {
+ if (scaled_splash_name[0] != '\0') {
image_data = JLI_JarUnpackFile(
jar_name, scaled_splash_name, &data_size);
}
if (!image_data) {
@@ -1845,21 +1853,18 @@
DoSplashLoadMemory(image_data, data_size);
JLI_MemFree(image_data);
}
} else {
DoSplashInit();
- if (scaled_splash_name) {
+ if (scaled_splash_name[0] != '\0') {
DoSplashSetScaleFactor(scale_factor);
DoSplashLoadFile(scaled_splash_name);
} else {
DoSplashLoadFile(file_name);
}
}
-
- if (scaled_splash_name) {
JLI_MemFree(scaled_splash_name);
- }
DoSplashSetFileJarName(file_name, jar_name);
/*
* Done with all command line processing and potential re-execs so
< prev index next >