void freeLauncherProperties()

in src/main/cpp/launcher/windows/src/Launcher.c [875:934]


void freeLauncherProperties(LauncherProperties **props) {
    if((*props)!=NULL) {
        DWORD i=0;
        writeMessageA(*props, OUTPUT_LEVEL_DEBUG, 0, "Closing launcher properties", 1);
        freeWCHARList(& ( (*props)->appArguments));
        freeWCHARList(& ( (*props)->jvmArguments));
        
        FREE((*props)->mainClass);
        FREE((*props)->testJVMClass);
        FREE((*props)->classpath);
        freeLauncherResourceList(&((*props)->jars));
        
        freeLauncherResourceList(&((*props)->jvms));
        
        freeLauncherResourceList(&((*props)->other));
        
        freeLauncherResource(&((*props)->testJVMFile));
        
        FREE((*props)->tmpDir);
        for(i=0;i<(*props)->compatibleJavaNumber;i++) {
            JavaCompatible * jc = (*props)->compatibleJava[i];
            if(jc!=NULL) {
                FREE(jc->minVersion);
                FREE(jc->maxVersion);
                FREE(jc->vendor);
                FREE(jc->osName);
                FREE(jc->osArch);
                FREE((*props)->compatibleJava[i]);
            }
        }
        freeStringList(&((*props)->alreadyCheckedJava));
        FREE((*props)->compatibleJava);
        freeJavaProperties(&((*props)->java));
        FREE((*props)->userDefinedJavaHome);
        FREE((*props)->userDefinedTempDir);
        FREE((*props)->userDefinedExtractDir);
        FREE((*props)->userDefinedOutput);
        FREE((*props)->userDefinedLocale);
        FREE((*props)->command);
        FREE((*props)->exePath);
        FREE((*props)->exeDir);
        FREE((*props)->exeName);
        FREE((*props)->bundledSize);
        FREE((*props)->launcherSize);
        freeSizedString(&((*props)->restOfBytes));
        
        flushHandle((*props)->stdoutHandle);
        flushHandle((*props)->stderrHandle);
        CloseHandle((*props)->stdoutHandle);
        CloseHandle((*props)->stderrHandle);
        
        freeI18NMessages((*props));
        freeWCHARList(& ((*props)->launcherCommandArguments));
        freeWCHARList(& ((*props)->commandLine));
        CloseHandle((*props)->handler);
        
        FREE((*props));
    }
    return;
}