6092b50ebb
handled properly when MCA parameters are re-registered and their types change. Specifically, this case was broken: 1. Register an int MCA param with a non-zero default value 1. Re-register the same MCA param as a string with a NULL default value The 2nd step would cause a segv because the first int default value wasn't being reset properly. Here's sample code that shows the issue: {{{ { int ibogus; char *sbogus; opal_init(&argc, &argv); mca_base_param_reg_int_name("type", "name", "help", false, false, 3, &ibogus); printf("Ibogus: %d\n", ibogus); mca_base_param_reg_string_name("type", "name", "help", false, false, NULL, &sbogus); printf("Sbogus: %s\n", (NULL == sbogus) ? "NULL" : sbogus); exit(0); } }}} This commit fixes the problem from the sample code above as well as the a similar issue for file-set MCA params and override values. It also resets default values for MCA params initially registered as a string but then re-registered as an int. This commit was SVN r25392. |
||
---|---|---|
.. | ||
base.h | ||
help-mca-base.txt | ||
help-mca-param.txt | ||
Makefile.am | ||
mca_base_close.c | ||
mca_base_cmd_line.c | ||
mca_base_component_compare.c | ||
mca_base_component_find.c | ||
mca_base_component_repository.c | ||
mca_base_component_repository.h | ||
mca_base_components_close.c | ||
mca_base_components_open.c | ||
mca_base_components_select.c | ||
mca_base_list.c | ||
mca_base_open.c | ||
mca_base_param_internal.h | ||
mca_base_param.c | ||
mca_base_param.h | ||
mca_base_parse_paramfile.c |