diff --git a/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so b/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so index b6289ee9edc..573cc3fa838 100755 Binary files a/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so and b/core/org.eclipse.cdt.core.linux.aarch64/os/linux/aarch64/libspawner.so differ diff --git a/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so b/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so index 25ae3f2e5bc..606698c1068 100755 Binary files a/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so and b/core/org.eclipse.cdt.core.linux.ppc64le/os/linux/ppc64le/libspawner.so differ diff --git a/core/org.eclipse.cdt.core.linux.x86_64/os/linux/x86_64/libspawner.so b/core/org.eclipse.cdt.core.linux.x86_64/os/linux/x86_64/libspawner.so index 2a9b19f08a9..42209a5432a 100755 Binary files a/core/org.eclipse.cdt.core.linux.x86_64/os/linux/x86_64/libspawner.so and b/core/org.eclipse.cdt.core.linux.x86_64/os/linux/x86_64/libspawner.so differ diff --git a/core/org.eclipse.cdt.core.macosx/os/macosx/x86/libspawner.jnilib b/core/org.eclipse.cdt.core.macosx/os/macosx/x86/libspawner.jnilib index cd5afe34824..a915dbe642f 100755 Binary files a/core/org.eclipse.cdt.core.macosx/os/macosx/x86/libspawner.jnilib and b/core/org.eclipse.cdt.core.macosx/os/macosx/x86/libspawner.jnilib differ diff --git a/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib b/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib index 3942e467255..699fae49682 100755 Binary files a/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib and b/core/org.eclipse.cdt.core.macosx/os/macosx/x86_64/libspawner.jnilib differ diff --git a/core/org.eclipse.cdt.core.native/native_src/unix/spawner.c b/core/org.eclipse.cdt.core.native/native_src/unix/spawner.c index 1a32c709be0..b42af44d561 100644 --- a/core/org.eclipse.cdt.core.native/native_src/unix/spawner.c +++ b/core/org.eclipse.cdt.core.native/native_src/unix/spawner.c @@ -47,7 +47,7 @@ static void print_array(char **c_array) { static char** alloc_c_array(JNIEnv *env, jobjectArray j_array) { int i; jint c_array_size = (*env)->GetArrayLength(env, j_array); - char **c_array = calloc(c_array_size + 1, sizeof(*c_array)); + char **c_array = calloc(c_array_size + 1, sizeof(char*)); if (c_array == NULL) { return NULL; @@ -67,9 +67,7 @@ static char** alloc_c_array(JNIEnv *env, jobjectArray j_array) { static void free_c_array(char **c_array) { if (c_array) { for (char **p = c_array; *p; p++) { - if (*p) { - free(*p); - } + free(*p); } free(c_array); } @@ -121,12 +119,8 @@ JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec2(JNIEnv * bail_out: (*env)->ReleaseStringUTFChars(env, jdir, dirpath); (*env)->ReleaseStringUTFChars(env, jslaveName, pts_name); - if (cmd) { - free_c_array(cmd); - } - if (envp) { - free_c_array(envp); - } + free_c_array(cmd); + free_c_array(envp); return pid; } @@ -162,12 +156,8 @@ Java_org_eclipse_cdt_utils_spawner_Spawner_exec1(JNIEnv *env, jobject jobj, jobj } bail_out: (*env)->ReleaseStringUTFChars(env, jdir, dirpath); - if (cmd) { - free_c_array(cmd); - } - if (envp) { - free_c_array(envp); - } + free_c_array(cmd); + free_c_array(envp); return pid; } @@ -224,12 +214,8 @@ Java_org_eclipse_cdt_utils_spawner_Spawner_exec0(JNIEnv *env, jobject jobj, jobj } bail_out: (*env)->ReleaseStringUTFChars(env, jdir, dirpath); - if (cmd) { - free_c_array(cmd); - } - if (envp) { - free_c_array(envp); - } + free_c_array(cmd); + free_c_array(envp); return pid; } diff --git a/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c b/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c index 78b46b27b92..ba0fb7fd379 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c +++ b/core/org.eclipse.cdt.core.native/native_src/win/Win32ProcessEx.c @@ -133,7 +133,7 @@ JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0(JNIEnv * PROCESS_INFORMATION pi = { 0 }, *piCopy; STARTUPINFOW si; DWORD flags = 0; - const wchar_t *cwd = NULL; + wchar_t *cwd = NULL; LPVOID envBlk = NULL; int ret = 0; int nCmdLineLength = 0; @@ -372,17 +372,9 @@ JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec0(JNIEnv * &si, /* (in) startup information */ &pi); /* (out) process information */ - if (NULL != cwd) { - free((void*) cwd); - } - - if (NULL != szEnvBlock) { - free(szEnvBlock); - } - - if (NULL != szCmdLine) { - free(szCmdLine); - } + free(cwd); + free(szEnvBlock); + free(szCmdLine); if (!ret) { // Launching error char *lpMsgBuf; @@ -572,15 +564,9 @@ JNIEXPORT jint JNICALL Java_org_eclipse_cdt_utils_spawner_Spawner_exec1(JNIEnv * &si, /* (in) startup information */ &pi); /* (out) process information */ - if (NULL != cwd) { - free(cwd); - } - if (NULL != szEnvBlock) { - free(szEnvBlock); - } - if (NULL != szCmdLine) { - free(szCmdLine); - } + free(cwd); + free(szEnvBlock); + free(szCmdLine); if (!ret) { // error char *lpMsgBuf; diff --git a/core/org.eclipse.cdt.core.native/native_src/win/starter.c b/core/org.eclipse.cdt.core.native/native_src/win/starter.c index c58c997e6e7..83477b38d6a 100644 --- a/core/org.eclipse.cdt.core.native/native_src/win/starter.c +++ b/core/org.eclipse.cdt.core.native/native_src/win/starter.c @@ -430,9 +430,7 @@ int main() { #endif } - if (NULL != szCmdLine) { - free(szCmdLine); - } + free(szCmdLine); CloseHandle(waitEvent); CloseHandle(h[0]); @@ -441,7 +439,7 @@ int main() { CloseHandle(h[3]); CloseHandle(h[4]); - return (dwExitCode); + return dwExitCode; } ///////////////////////////////////////////////////////////////////////////////////// diff --git a/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/spawner.dll b/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/spawner.dll index 5b81512e843..66a6a80bfe8 100755 Binary files a/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/spawner.dll and b/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/spawner.dll differ diff --git a/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/starter.exe b/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/starter.exe index dfed6f64a17..fef220886e6 100755 Binary files a/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/starter.exe and b/core/org.eclipse.cdt.core.win32.x86_64/os/win32/x86_64/starter.exe differ