1
1

Reorder the var release so a debugger can still see the var name that caused a segfault, thus helping to identify the var in question

cmr=v1.8.2:reviewer=hjelmn

This commit was SVN r32068.
Этот коммит содержится в:
Ralph Castain 2014-06-24 13:51:31 +00:00
родитель 926e29c972
Коммит 20535bca19

Просмотреть файл

@ -13,6 +13,7 @@
* Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved. * Copyright (c) 2008-2013 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2012-2014 Los Alamos National Security, LLC. All rights * Copyright (c) 2012-2014 Los Alamos National Security, LLC. All rights
* reserved. * reserved.
* Copyright (c) 2014 Intel, Inc. All rights reserved.
* $COPYRIGHT$ * $COPYRIGHT$
* *
* Additional copyrights may follow * Additional copyrights may follow
@ -1602,6 +1603,17 @@ static void var_constructor(mca_base_var_t *var)
*/ */
static void var_destructor(mca_base_var_t *var) static void var_destructor(mca_base_var_t *var)
{ {
if (MCA_BASE_VAR_TYPE_STRING == var->mbv_type &&
NULL != var->mbv_storage &&
NULL != var->mbv_storage->stringval) {
free (var->mbv_storage->stringval);
}
/* don't release the boolean enumerator */
if (MCA_BASE_VAR_TYPE_BOOL != var->mbv_type && NULL != var->mbv_enumerator) {
OBJ_RELEASE(var->mbv_enumerator);
}
if (NULL != var->mbv_variable_name) { if (NULL != var->mbv_variable_name) {
free(var->mbv_variable_name); free(var->mbv_variable_name);
} }
@ -1614,16 +1626,6 @@ static void var_destructor(mca_base_var_t *var)
if (NULL != var->mbv_description) { if (NULL != var->mbv_description) {
free(var->mbv_description); free(var->mbv_description);
} }
if (MCA_BASE_VAR_TYPE_STRING == var->mbv_type &&
NULL != var->mbv_storage &&
NULL != var->mbv_storage->stringval) {
free (var->mbv_storage->stringval);
}
/* don't release the boolean enumerator */
if (MCA_BASE_VAR_TYPE_BOOL != var->mbv_type && NULL != var->mbv_enumerator) {
OBJ_RELEASE(var->mbv_enumerator);
}
/* Destroy the synonym array */ /* Destroy the synonym array */
OBJ_DESTRUCT(&var->mbv_synonyms); OBJ_DESTRUCT(&var->mbv_synonyms);