diff --git a/Wrapping/Tools/vtkParseJava.c b/Wrapping/Tools/vtkParseJava.c index 10dffd264dec077a769a89d237fdd575ec14cae9..1acbb48924dade56e3856a9245bc21ec3680ee4f 100644 --- a/Wrapping/Tools/vtkParseJava.c +++ b/Wrapping/Tools/vtkParseJava.c @@ -982,8 +982,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) if (!fp) { fprintf(stderr, "Error opening output file %s\n", options->OutputFileName); - vtkParse_Finalize(); - return 1; + return vtkParse_FinalizeMain(1); } /* get the main class */ @@ -993,11 +992,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) WriteDummyClass(fp, data, options->OutputFileName); fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } if (data->Template) @@ -1005,11 +1000,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) WriteDummyClass(fp, data, options->OutputFileName); fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } for (i = 0; i < data->NumberOfSuperClasses; ++i) @@ -1019,11 +1010,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) WriteDummyClass(fp, data, options->OutputFileName); fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } } @@ -1034,11 +1021,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) WriteDummyClass(fp, data, options->OutputFileName); fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } /* resolve using declarations within the header files */ @@ -1200,10 +1183,6 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) } vtkParse_Free(file_info); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } diff --git a/Wrapping/Tools/vtkParseMain.c b/Wrapping/Tools/vtkParseMain.c index 6170321a914053a85b9681539a30199b1975a980..35fd5fdc4b44f4392952f59f8ca705cb349b5a86 100644 --- a/Wrapping/Tools/vtkParseMain.c +++ b/Wrapping/Tools/vtkParseMain.c @@ -188,7 +188,7 @@ static int read_option_file(StringCache* strings, const char* filename, int* arg if (option_file_stack_size == option_file_stack_max) { fprintf(stderr, "%s: @file recursion is too deep.\n", (*args)[0]); - exit(1); + exit(vtkParse_FinalizeMain(1)); } /* avoid reading the same file recursively */ option_file_stack[option_file_stack_size++] = filename; @@ -423,13 +423,11 @@ const OptionInfo* vtkParse_GetCommandLineOptions(void) return &options; } -int vtkParse_Finalize(void) +int vtkParse_FinalizeMain(int ret) { - int ret = 0; - - if (options.DependencyFileName && vtkParse_WriteDependencyFile(options.DependencyFileName)) + if (ret == 0 && options.DependencyFileName) { - ret = 1; + ret = vtkParse_WriteDependencyFile(options.DependencyFileName); } vtkParse_FinalizeDependencyTracking(); @@ -470,12 +468,12 @@ FileInfo* vtkParse_Main(int argc, char* argv[]) if (argi == 0) { free(args); - exit(0); + exit(vtkParse_FinalizeMain(0)); } else if (argi < 0 || options.NumberOfFiles != 1) { parse_print_help(stderr, args[0], 0); - exit(1); + exit(vtkParse_FinalizeMain(1)); } /* open the input file */ @@ -484,7 +482,7 @@ FileInfo* vtkParse_Main(int argc, char* argv[]) if (!(ifile = vtkParse_FileOpen(options.InputFileName, "r"))) { fprintf(stderr, "Error opening input file %s\n", options.InputFileName); - exit(1); + exit(vtkParse_FinalizeMain(1)); } /* free the expanded args */ @@ -500,7 +498,7 @@ FileInfo* vtkParse_Main(int argc, char* argv[]) { fprintf(stderr, "No output file was specified\n"); fclose(ifile); - exit(1); + exit(vtkParse_FinalizeMain(1)); } if (options.DependencyFileName && options.OutputFileName) @@ -525,7 +523,7 @@ FileInfo* vtkParse_Main(int argc, char* argv[]) if (options.DumpMacros) { /* do nothing (the dump occurred in ParseFile above) */ - exit(0); + exit(vtkParse_FinalizeMain(0)); } /* open and parse each hint file, if given on the command line */ @@ -540,7 +538,7 @@ FileInfo* vtkParse_Main(int argc, char* argv[]) fprintf(stderr, "Error opening hint file %s\n", hfilename); fclose(ifile); vtkParse_FreeFile(data); - exit(1); + exit(vtkParse_FinalizeMain(1)); } /* fill in some blanks by using the hints file */ @@ -595,12 +593,12 @@ StringCache* vtkParse_MainMulti(int argc, char* argv[]) if (argi == 0) { - exit(0); + exit(vtkParse_FinalizeMain(0)); } else if (argi < 0 || options.NumberOfFiles == 0) { parse_print_help(stderr, argv[0], 1); - exit(1); + exit(vtkParse_FinalizeMain(1)); } if (options.DependencyFileName && options.OutputFileName) diff --git a/Wrapping/Tools/vtkParseMain.h b/Wrapping/Tools/vtkParseMain.h index b3f6fe8ef3ea84bb967a200e9eefefd0c324a3c4..7a508408b242bf74e54adf23b902cec5050262a2 100644 --- a/Wrapping/Tools/vtkParseMain.h +++ b/Wrapping/Tools/vtkParseMain.h @@ -82,10 +82,12 @@ extern "C" * Perform any finalization required. * * This includes writing the dependency tracker information and cleaning up - * memory. + * memory. Call this at the end of any program that calls vtkParse_Main(). + * The return value is zero if finalization was successful and nonzero + * if finalization encountered an error. */ VTKWRAPPINGTOOLS_EXPORT - int vtkParse_Finalize(void); + int vtkParse_FinalizeMain(int ret); /** * The main function, which parses the input file and returns the result. diff --git a/Wrapping/Tools/vtkWrapHierarchy.c b/Wrapping/Tools/vtkWrapHierarchy.c index 308e1b61794dd6478fbea3e09f1cd24d895aae86..02966819c6f1470bafba6d5ac116c4482ccb24fb 100644 --- a/Wrapping/Tools/vtkWrapHierarchy.c +++ b/Wrapping/Tools/vtkWrapHierarchy.c @@ -899,8 +899,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) if (options->OutputFileName == NULL) { fprintf(stderr, "No output file was specified\n"); - vtkParse_Finalize(); - return 1; + return vtkParse_FinalizeMain(1); } /* read the data file */ @@ -966,9 +965,6 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) free(string_cache); free(files); free(lines); - if (vtkParse_Finalize()) - { - return 1; - } - return retValue; + + return vtkParse_FinalizeMain(retValue); } diff --git a/Wrapping/Tools/vtkWrapJava.c b/Wrapping/Tools/vtkWrapJava.c index 05d251c0d164552ac65c2d8a68aecea068a784e4..e315795bc9ea76e12f274028231ed5390f0d18b8 100644 --- a/Wrapping/Tools/vtkWrapJava.c +++ b/Wrapping/Tools/vtkWrapJava.c @@ -1350,8 +1350,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) if (!fp) { fprintf(stderr, "Error opening output file %s\n", options->OutputFileName); - vtkParse_Finalize(); - return 1; + return vtkParse_FinalizeMain(1); } /* get the main class */ @@ -1359,22 +1358,14 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) if (data == NULL || data->IsExcluded) { fclose(fp); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } if (data->Template) { fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } for (i = 0; i < data->NumberOfSuperClasses; ++i) @@ -1383,11 +1374,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) { fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } } @@ -1397,11 +1384,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) { fclose(fp); vtkWrap_WarnEmpty(options); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } /* resolve using declarations within the header files */ @@ -1581,10 +1564,6 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) vtkParse_Free(file_info); fclose(fp); - if (vtkParse_Finalize()) - { - return 1; - } - return 0; + return vtkParse_FinalizeMain(0); } diff --git a/Wrapping/Tools/vtkWrapPython.c b/Wrapping/Tools/vtkWrapPython.c index ce630863cc1dfba57d396b9ec8cb179b59096bec..784247a48dc0bb8b2117963ca8cef852445ec946 100644 --- a/Wrapping/Tools/vtkWrapPython.c +++ b/Wrapping/Tools/vtkWrapPython.c @@ -299,8 +299,7 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) char* etext = strerror(e); etext = (etext ? etext : "Unknown error"); fprintf(stderr, "Error %d opening output file %s: %s\n", e, options->OutputFileName, etext); - vtkParse_Finalize(); - return 1; + return vtkParse_FinalizeMain(1); } /* get the filename without the extension */ @@ -597,10 +596,5 @@ int VTK_PARSE_MAIN(int argc, char* argv[]) vtkWrap_WarnEmpty(options); } - if (vtkParse_Finalize()) - { - return 1; - } - - return 0; + return vtkParse_FinalizeMain(0); }